当我在对象内部使用() => {}
时,
我有一些麻烦
这是我的代码
var arrowDeliveryBody = {
name: 'Ben',
handleMessage: (message, handler) => handler(message),
receive: () => {
this.handleMessage("Hello ", message => console.info(message + this.name))
}
}
arrowDeliveryBody.receive()
错误消息为TypeError: this.handleMessage is not a function
但是如果我换了一些鳕鱼,例如
var arrowDeliveryBody = {
name: 'Ben',
handleMessage: (message, handler) => handler(message),
receive: function() {
this.handleMessage("Hello ", message => console.info(message + this.name))
}
}
arrowDeliveryBody.receive()
没关系。
箭头函数在创建时捕获this
的当前值,而我的receive
函数在arrowDeliveryBody
对象中,所以为什么this
没指向到arrowDeliveryBody
对象
所以给我一些想法或建议。