使用箭头功能时,此关键字无法绑定数据

时间:2019-01-25 01:03:05

标签: javascript node.js

我正在运行一个有关EventEmitter的示例,突然遇到了与回调函数有关的错误,其中我无法在箭头函数中绑定此关键字。

var EventEmitter = require('events').EventEmitter;
var util = require('util');

var Person = function(name){
    this.name = name;
}

util.inherits(Person, EventEmitter);

var ben = new Person("Ben Franklin");
ben.on('speak', (said) => {
    console.log(`${this.name} said : ${said}`);
});
ben.emit('speak', "You may delay, but time will not.");

输出-未定义表示您可以延迟,但是时间不会。

如果我这样编写eventListner

ben.on('speak', function(said){
    ..........
}); 

然后正常工作。请给我这个问题的解释。

输出-本富兰克林说您可以延迟,但时间不会。

0 个答案:

没有答案