在我的JavaScript代码中,我有一个惰性实例化对象AAA。我想创建新对象BBB并继承自AAA。
它是如何制作的?
答案 0 :(得分:0)
标准javascript继承可以通过原型来实现
BBB.prototype = new AAA();
但是这样,如果覆盖父方法,则无法访问父方法。出于这个原因,我正在使用静态属性超类,例如
function AAA() {}
AAA.prototype = {
foo: function() {return 'foo';}
}
function BBB() {}
BBB.superclass = AAA.prototype;
BBB.prototype = {
foo: function() { return BBB.superclass.foo() + "bar";}
}
b = new BBB();
b.foo() //returns foobar
答案 1 :(得分:0)
我喜欢作弊,这会创建从公共o
继承的对象。我冒昧地重命名你在问题中提到的变量。
var o = {
happy: true,
fun: true,
time: true
}
var AAA = {
happy: false
};
AAA.__proto__ = o;
console.log( 'happy', AAA.happy );
console.log( 'fun', AAA.fun );