这很奇怪。我做错了什么?
class Store extends Riot.Observable {
trigger():void {
// shouldn't this be completely overwriting the trigger method on riot.observable?
console.log("my trigger....");
}
}
let store = new Store();
store.trigger();
预期的行为:"我的触发器......"在控制台中。我得到的是Riot.Observable上触发器的原始实现,由于没有传递参数而导致错误。
如果我戳store
store.__proto__
我可以在store
看到的对象确实有触发器,我的实现。但是trigger()
iself有自己的(原始)../../../../
请参阅https://jsfiddle.net/sidouglas/5spbvpnn/
我引用this with a very basic example,我不知道发生了什么。
答案 0 :(得分:2)
基于source,暴乱的观察者不利用原型继承。它们作为mixins而不是。打字稿包装类只调用原始的暴乱混合。要覆盖函数,必须将其分配给实例:
class Store extends Riot.Observable {
constructor() {
this.trigger = function() {
console.log("My trigger");
};
}
}
let store = new Store();
store.trigger();