当前位置: 首页 > 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.pierceye.com/news/932942/

相关文章:

  • 外贸自建站有哪些网站开发有哪几类
  • 青岛网站建设推广短视频运营是做什么的
  • 华为官方网站进入wordpress单页增加分页
  • 互动营销型网站建设大型网站建设开发设计公司
  • 锦州建设局网站商城网站建设方案电子版
  • 网站上删除信息如何做飞虎队网站建设
  • 中国有多少个网站网站做视频一个月有多少钱收入
  • 网站文字大小普洱市建设局网站
  • 兰州网站建设小程序凡客网站目录优化
  • 宿州科技网站建设一站式网站管家
  • 网站开发模块学些什么郑州网站建设动态
  • 各类设计型网站wordpress 防注入
  • 网站中有一个非常著名的原则如何与老板谈网站建设
  • 免费十八种禁用网站如何做一个网页布局
  • cms仿站pc网站案例
  • dede如何做手机网站哪些客户需要做网站
  • 阜蒙县建设镇官方网站那种网站2021
  • 同信.长春网站建设北京网站建设策划
  • 长沙游戏网站开发开发人员公众号
  • 用手机能建网站吗软件商店软件下载
  • 天津自助建站哪个建设网站
  • 西宁市网站建设公司推荐网站全网建设 莱芜
  • 安徽阜阳网站建设公司wordpress网页自适应屏幕大小
  • 上海门户网站的亮点网站开发平台及常用的开发工具
  • 广州h5设计网站公司网站建设从建立服务器开始
  • 如何网站建设全包12306网站多钱做的
  • 阳江北京网站建设中国平面设计在线
  • 上海城乡建设中级职称报名网站合肥网站建设之4个细节要注意事项
  • 洮南网站建设哪家好鞍山信息港招聘信息网
  • 大气手机网站wordpress 添加设置