爲什麼this.name
返回undefined?爲什麼this.name未定義?
function EventEmitter() {
var events = {};
this.name = "Google"
this.on = function(name, fn) {
events[name] = events[name] || [];
events[name].push(fn);
}
this.trigger = function(name, args) {
events[name] = events[name] || [];
args = args || [];
events[name].forEach(function(fn) {
fn.apply(this, args);
});
}
}
var my_event_emitter = new EventEmitter();
my_event_emitter.on('curtain_dropped', function() {
console.log(this.name);
});
my_event_emitter.trigger('curtain_dropped', [true]);
當我打電話fn.apply(this, args)
是EventEmitter
的this
不是實例是my_event_emitter
?
有時'bind'不是最好的選擇。關閉比「綁定」更好。無論如何,這是一種可能的方法,它會起作用! –
你能否告訴我如何通過修改示例將上下文作爲第四個參數傳遞給我。 – Shane
當然,請參閱編輯。 –