const obj = { name: 'Alice', greet: function () { console.log('Hello, ' + this.name); } }; setTimeout(obj.greet, 1000); 怎么改成箭头函数
时间: 2024-01-28 17:03:31 浏览: 61
《实战ES2015:深入现代JavaScript 应用开发》.pdf
可以将obj.greet方法改写成箭头函数,箭头函数中的this指向定义时的作用域(即obj对象),而不是调用时的作用域(setTimeout函数的执行环境)。
修改后的代码如下所示:
```javascript
const obj = {
name: 'Alice',
greet: () => {
console.log('Hello, ' + this.name);
}
};
setTimeout(obj.greet, 1000);
```
在上面的代码中,greet方法被改写成了箭头函数,this指向定义时的作用域,即obj对象,因此输出结果为"Hello, Alice"。需要注意的是,箭头函数不能通过bind、call、apply等方法改变其this指向,因此在使用箭头函数时需要注意其上下文的作用域。
阅读全文