Js的this隐式调用的坑,遗失this绑定几个简单举例
原创博主分享的这些例子来自JS小黄书, 帮助大家理解JS约束原则
前两个是隐式绑定的示例
function foo(){
console.log(this.a);
}
var obj = {
a:2,
foo: foo
};
obj.foo(); // 2
function foo(){
console.log(this.a);
}
var obj2 = {
a:42,
foo: foo
}
var obj1 = {
a: 2,
obj2: obj2
};
obj1.obj2.foo(); // 42
隐式丢失
function foo(){
console.log(this.a);
}
var obj = {
a:2,
foo: foo
}
var bar = obj.foo; // 函数别名!
var a = "gloabal";
bar(); // "global"
function foo(){
console.log(this.a);
}
function doFoo(fn){
fn();
}
var obj = {
a:2,
foo: foo
};
var a = "global";
doFoo(obj.foo); // "global"
缺少回调函数。this绑定非常常见
除了隐式绑定之外,还有显式绑定和硬绑定。
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除