gpt4 book ai didi

javascript - Riotjs(Riot typescript)无法覆盖typescript类上的方法

转载 作者:搜寻专家 更新时间:2023-10-30 21:41:14 24 4
gpt4 key购买 nike

这很奇怪。我做错了什么?

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()

副本(原始)

请参阅https://jsfiddle.net/sidouglas/5spbvpnn/

我引用了 this with a very basic example ,我不知道发生了什么。

最佳答案

基于source , riot observables 不利用原型(prototype)继承。它们作为 mixin 而工作。 typescript 包装器类只是调用原始的 riot mixin。要覆盖函数,您必须将其分配给实例:

class Store extends Riot.Observable {
constructor() {
this.trigger = function() {
console.log("My trigger");
};
}
}

let store = new Store();
store.trigger();

关于javascript - Riotjs(Riot typescript)无法覆盖typescript类上的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39988620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com