javascript - 何时使用 Javascript 装饰器与继承
问题描述
我正在学习如何在 Javascript 中使用装饰器,并且对于何时适合使用类继承与装饰器感到困惑?
例如,以下使用装饰器向类添加方法。它还覆盖了装饰类方法之一。
import $ from "jquery";
function write(msg) {
$("#app").prepend(msg);
}
function clean(constructor) {
return class extends constructor {
foo() {
write("<h1>from the Decorated class</h1>");
}
bar() {
write("I haz bar");
}
};
}
@clean
class Hello {
foo() {
write("<h1>from the undecorated class</h1>");
}
}
const h = new Hello();
h.();
AFAIK,具有继承性——如果父类和子类具有相同的方法,它将被翻转:子类将覆盖父类。在我不希望这种情况发生的情况下,装饰器将是理想的选择。那是对的吗?
PS我知道装饰器还没有正式使用该语言。