gpt4 book ai didi

javascript - ES6类的proto继承

转载 作者:行者123 更新时间:2023-11-29 20:52:12 36 4
gpt4 key购买 nike

<分区>

我有一个旧的代码库,其中包含一些外部类的子类,使用原型(prototype)继承。最近,这个外部类已经被移植到一个ES6类中,而且还有我想使用的新特性。原型(prototype)继承不再起作用,我想知道是否有可能让它起作用,即使它有一些丑陋的黑客攻击。这基本上就是我想要做的:

class ClassParent {
constructor(a) {
this.a = a;
}
}

var ProtoChildFromClassParent = function(a) {
ClassParent.call(this, a);
}
ProtoChildFromClassParent.prototype = Object.create(ClassParent.prototype);
ProtoChildFromClassParent.prototype.constructor = ProtoChildFromClassParent;

var child = new ProtoChildFromClassParent(4);
console.log(child.a);

我收到以下错误:

ClassParent.call(this, a);
^

TypeError: Class constructor ClassParent cannot be invoked without 'new'

请不要发布诸如“你应该将你的子类移植到 ES6”之类的答案。我知道这可能是合适的做法,将这个问题更多地视为学习练习/对 JS 内部结构的好奇心。

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