Как наследует объект от ленивого экземпляра? - PullRequest
0 голосов
/ 09 сентября 2011

В моем коде JavaScript у меня есть объект отложенного создания экземпляров AAA. Я хочу сделать новый объект BBB и наследует от AAA.

Как это сделать?

Ответы [ 2 ]

0 голосов
/ 16 сентября 2011

Мне нравится обманывать, это создаст объекты, наследуемые от общего 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 );
0 голосов
/ 09 сентября 2011

стандартное наследование 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...