var obj = {
id: "awesome",
cool: function() {
setTimeout(function() {
console.log(this.id)
}, 100);
}
};
obj.cool() // undefined
输出undefinede因为丢失了this绑定
var obj = {
id: "awesome",
cool: function() {
setTimeout(function() {
console.log(this.id)
}.bind(this), 100);
}
};
obj.cool() // awesome
var obj = {
id: "awesome",
cool: function() {
setTimeout(()=> {
console.log(this.id)
}, 100);
}
};
obj.cool() // awesome
es6中会把同词法作用域联系起来 箭头函数不仅仅是简写function
当然使用bind手动绑定也可
网友评论