1
以下Node.js的腳本不能正常工作this.emit不工作,但self.emit正在工作。爲什麼?
var EventEmitter = require('events').EventEmitter;
var util = require('util');
var TickE = function() {
}
util.inherits(TickE, EventEmitter); //TickE.prototype.__proto__ = EventEmitter.prototype;
TickE.prototype.ticker = function() {
var self = this;
setInterval (function() {
self.emit('tick');
}, 1000);
};
var t = new TickE();
//console.log (util.inspect(t));
t.on('tick', function() { console.log ('Tick...');});
t.ticker();
如果我叫信號發送的方法,如下面
TickE.prototype.ticker = function() {
//var self = this; // commented this line
setInterval (function() {
this.emit('tick'); // using this in place of self
}, 1000);
};
自我僅僅是這一個變量保持基準,爲什麼這是它不工作拋出錯誤?
這已經被問這麼勤了。請在Google上搜索「this」和「javascript」。你應該得到*噸*的結果。 – 2013-05-03 13:04:35
@戈洛:那可能是問題 - 你能建議一個好的和正確的*閱讀嗎? – Bergi 2013-05-03 13:08:29
例如,請參閱http://stackoverflow.com/a/134149/1333873 ...部分「作爲功能」 – 2013-05-03 13:15:37