Переменная listener
является локальной для функции start
, поэтому вы не можете получить к ней доступ как к глобальной переменной.
Переместите определение this.cb
внутрь updateP.start
, тогда оно будетбыть в состоянии получить доступ к лексической переменной.
var updateP = {
start: function(listener) {
function asdf(ab) {
console.log(ab)
}
this.cb = function(event, properties) {
listener.next(properties)
};
dataset.on("update", this.cb)
},
stop: function() {
if (this.cb) {
dataset.off("update", this.cb);
}
},
}