call()、apply()、bind() 都是用来重定义 this 这个对象的2018-06-25

 <script>
 let name='小王',age=17;
 let obj={
     name:'xa',
     objAge:this.age,
     myFun:function () {
         console.log(this.name +" "+this.age)
     }
 }

 var db={
     name:"德玛西亚",
     age:99,
 }
/* console.log(obj.objAge);
 console.log(obj.myFun());*/

/*  obj.myFun.call(db);   //德玛西亚99
 obj.myFun.apply(db);    //德玛西亚99
 obj.myFun.bind(db)();   //德玛西亚99
// 以上出了bind 方法后面多了个 () 外 ,结果返回都一致

  由此得出结论,bind 返回的是一个新的函数,你必须调用       它才  会被执行  */



   </script>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容