var emitter = require('events').EventEmitter;
var util = require('util');
let Person = function (name) {
this.name = name;
};
util.inherits(Person, emitter);
let p = new Person("jonny");
p.on('speak', (said) => {
console.log(` ${this.name} said: ${said}`);
});
p.emit('speak', "You may delay but time will not!");
控制檯將返回這不採取同樣的拉姆達沒有它在ecma6 JavaScript和的NodeJS
不確定的說:你可以推遲但時間不會!
如果從拉姆達變化回來
p.on('speak', function(said) {
console.log(` ${this.name} said: ${said}`);
});
它的工作原理。可以向我解釋爲什麼這種行爲與語法糖變化有所不同?
因爲不僅是糖。 '=>'不會創建新的上下文,並且沒有'this'。 –
'function()'版本也是lambda。 – nnnnnn
http://stackoverflow.com/documentation/javascript/186/functions/720/arrow-functions#t=201608012207550133428 –