1、对象中的this
var name = 'Tom';
let obj = {
name: this.name,
};
console.log(obj);
// Chrome
// {name: "Tom"}
// Node.js
// { name: undefined }
2、函数中的this
let tom = {
name: 'Tom',
sayHello() {
// this 默认指向了tom 对象
console.log(`name is ${this.name}`);
}
};
let jack = {
name: 'Jack',
};
tom.sayHello();
// name is Tom
// 改变 this指向
tom.sayHello.call(jack);
// name is Jack
tom.sayHello.apply(jack);
// name is Jack
// 注意bind之后需要再次调用执行
tom.sayHello.bind(jack)();
// name is Jack
参考
javascript中call()、apply()、bind()的用法终于理解