博主分享的这几个例子来自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绑定是非常常见的
除了隐式绑定还有显式绑定和硬绑定
本文通过几个实例介绍了JavaScript中函数的绑定原理,包括隐式绑定、显式绑定和硬绑定的概念。重点讲解了在不同上下文中如何影响函数内部的this指向,并通过具体的代码示例展示了在实际开发中常见的this绑定问题。

1831

被折叠的 条评论
为什么被折叠?



