Следующая 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);
};
само это просто ссылка на переменную проведение этого и почему это ошибка бросания?
Это было предложено так очень часто раньше. Пожалуйста, найдите 'this' и' javascript' в Google. Вы должны получить * тонны результатов. –
@Golo: это может быть проблема - можете ли вы предложить хорошее и * правильное * чтение? – Bergi
Например, см. Http://stackoverflow.com/a/134149/1333873 ... раздел «Как функция» –