Добавление прототипа в литерал объекта
У меня есть объект, скажемson
, который я хотел бы унаследовать от другого объектаfather
.
Конечно, я могу сделать функцию конструктора для отца, как
Father = function() {
this.firstProperty = someValue;
this.secondProperty = someOtherValue;
}
А потом использовать
var son = new Father();
son.thirdProperty = yetAnotherValue;
но это не совсем то, что я хочу. посколькуson
будет иметь много свойств, было бы более читабельным, если бы сын был объявлен как литерал объекта. Но тогда я не знаю, как установить его прототип.
Делать что-то вроде
var father = {
firstProperty: someValue;
secondProperty: someOtherValue;
};
var son = {
thirdProperty: yetAnotherValue
};
son.constructor.prototype = father;
не будет работать, так как цепочка прототипов кажется скрытой и не заботится об изменении constructor.prototype.
Я думаю, что я могу использовать__proto__
собственность в Firefox, как
var father = {
firstProperty: someValue;
secondProperty: someOtherValue;
};
var son = {
thirdProperty: yetAnotherValue
__proto__: father
};
son.constructor.prototype = father;
но, насколько я понимаю, это не стандартная функция языка, и лучше не использовать ее напрямую.
Есть ли способ указать прототип для литерала объекта?