当前位置: 首页 > news >正文

mvc5网站开发之六自学搭建网站

mvc5网站开发之六,自学搭建网站,网站收录,江苏盐城建筑公司网站今天来聊聊bind 关于之前的call跟apply 查看此链接 我们要明确4点内容 1. bind之后返回一个函数 let obj {name : skr } function fn(){console.log(this) } let bindfn fn.bind(obj) console.log(typeof bindfn) // function 2.bind改变this 并且可以传参 bind之后的函数仍… 今天来聊聊bind 关于之前的call跟apply 查看此链接 我们要明确4点内容 1. bind之后返回一个函数 let obj {name : skr } function fn(){console.log(this) } let bindfn fn.bind(obj) console.log(typeof bindfn) // function 2.bind改变this 并且可以传参 bind之后的函数仍旧可以传参 let obj {name : skr } function fn(){console.log(arguments,this) } let bindfn fn.bind(obj,陈,孙,李)bindfn(张三李四) //[Arguments] { 0: 陈, 1: 孙, 2: 李, 3: 张三李四 }{ name: skr }3.bind之后的函数做为构造函数执行this是作为新的一个引用 let obj {name : skr } function fn(name){this.name name console.log(this) //{ name: 坤坤 }console.log(obj) //{ name: skr } } let bindfn fn.bind(obj)let obj2 new bindfn(坤坤) 4 作为构造函数时候 在原型上添加属性 实例能找到这个属性 let obj {name : skr } function fn(name){this.name name console.log(this) //{ name: 坤坤 }console.log(obj) //{ name: skr } } let bindfn fn.bind(obj)let obj2 new bindfn(坤坤) fn.prototype.arrt 小生 console.log(obj2.arrt) // 小生实现一个bind 遵循以上4点 bind之后返回一个函数Function.prototype.bind function(){return function(){// 代码省略} } bind改变this 并且可以传参 bind之后的函数仍旧可以传参Function.prototype.bind function(context){let _this this let args Array.prototype.slice.call(arguments,1) // 保存外部函数的参数return function(){return _this.apply(context,args.concat(Array.from(arguments))) // 链接内部函数参数} } let obj {name :1 } function a(){console.log(this,arguments) } a.bind(obj,1,2,3,4,5,6)(7,8,9) /* 打印结果 { name: 1 } [Arguments] {0: 1,1: 2,2: 3,3: 4,4: 5,5: 6,6: 7,7: 8,8: 9 } */ bind之后的函数做为构造函数执行this是作为新的一个引用Function.prototype.bind function(context){let _this this let args Array.prototype.slice.call(arguments,1) // 保存外部函数的参数let fn2 function(){return _this.apply(this instanceof fn2 ? this:context ,args.concat(Array.from(arguments))) // 看看是否是new 出来的 是new的话就不改变this } return fn2 } let obj {name :1 } function a(name){this.name name console.log(this) } let bindfn a.bind(obj) let obj2 new bindfn(2) // {name:2} console.log(obj) // {name:1}作为构造函数时候 在原型上添加属性 实例能找到这个属性Function.prototype.bind function(context){let _this this let args Array.prototype.slice.call(arguments,1) // 保存外部函数的参数function ConS(){}let fn2 function(){return _this.apply(this instanceof fn2 ? this:context ,args.concat(Array.from(arguments))) // 看看是否是new 出来的 是new的话就不改变this } console.log(this)ConS.prototype this.prototype // 通过第三方 new ConS().__proto__ this.prototype fn2.prototype new ConS() // new fn2().__proto__ new ConS() --- new fn2().__proto__.__proto__ this.prototype 从而拿到this实例上的原型属性和方法return fn2 } let obj {name :1 } function a(name){this.name name console.log(this) } let bindfn a.bind(obj) let obj2 new bindfn(2) // {name:2} console.log(obj2) // {name:1}大致上就是这样了
http://www.zqtcl.cn/news/932942/

相关文章:

  • 电商网站开发目的举报网站建设运行情况
  • 网站专业设计在线科技成都网站推广公司
  • 怎么建设幸运28网站seo工作是什么意思
  • 人工智能和网站开发如何做网站栏目
  • 设计有什么网站推荐ppt大全免费模板
  • 建站点wordpress百度云
  • 微信朋友圈的网站连接怎么做公众号小程序制作步骤
  • 做移动互联网站点网站建设完工确认书
  • 网站建设英语翻译资料潼南国外免费自助建站
  • 技术支持上海网站建设如何在自己电脑上做网站
  • go语做网站深圳网上推广怎么做
  • 十堰网站建设电话刷网站流量有用吗
  • 轴承推广做哪个网站怎么在app中嵌入h5页面
  • 文书写作网站模板制作过程
  • 国外做家纺的网站wordpress导航加title
  • 阿里云备案网站名称服务器租用相关网站
  • 莆田市的网站建设公司网站身份验证怎么做
  • 手机建站永久免费软件网站根目录 设置
  • 网站内容和备案不一3d建模师容易找工作吗
  • 深圳装饰公司网站怎么做正规网站
  • 福建省建设行业企业资质查询网站跨境电商网络营销是什么
  • 做科技汽车的视频网站有哪些内容wordpress长文分页
  • 哪里有建设好的网站自助建站管理平台
  • 优秀网站建设公司电话建站公司用的服务器
  • 湖南网站推广公司上海公司买车上牌规定
  • 一个企业做网站的目的高端网站设计 上海
  • 教做布艺的网站网页传奇游戏排行榜前十
  • 做一个公司网站大概要多少钱做一个wordpress模板下载地址
  • 时代强个人网站网络营销的特点举例
  • 专门做诺丽果的网站北京百度seo点击器