标签:区别 列表 一个 win fine 绑定 数列 OLE 等价
默认绑定
1 function mfoo () { 2 let a = 1; 3 console.log(this.a); 4 } 5 let a = 10; 6 mfoo(); // undefined 7 // 默认绑定一般是绑定到window上,严格模式下是undefined
隐性绑定
1 function yfoo() { 2 console.log(this.a); 3 } 4 let obj = { 5 a: 10, 6 yfoo: yfoo 7 } 8 yfoo(); // undefined 默认绑定 等价于window.a 9 obj.yfoo(); // 10 隐性绑定 函数yfoo执行的时候有了上下文对象,即obj。
显性绑定
1 function bfoo () { 2 console.log(this.a); 3 } 4 5 let bobj = { a: 10 }; 6 bfoo = bfoo.bind(bobj); 7 8 bfoo(); // 10
1 function xfoo () { 2 console.log(this.a); 3 } 4 let xobj = { 5 a: 888 6 } 7 xfoo.call(xobj); 8 9 xfoo.apply(xobj);
new绑定
1 function nfoo () { 2 this.a = 10; 3 console.log(this); 4 } 5 nfoo(); 6 console.log(window.a); 7 let nobj = new nfoo(); 8 console.log(nobj.a);
标签:区别 列表 一个 win fine 绑定 数列 OLE 等价
原文地址:https://www.cnblogs.com/let423/p/10122151.html