Hinzufügen eines Prototyps zu einem Objektliteral
Ich habe ein Objekt, sagen Sieson
, das ich von einem anderen Objekt erben möchtefather
.
atürlich kann ich eine Konstruktorfunktion für Vater erstellen, wie zB
Father = function() {
this.firstProperty = someValue;
this.secondProperty = someOtherValue;
}
Und dann benutze
var son = new Father();
son.thirdProperty = yetAnotherValue;
aber das ist nicht genau das was ich will. Schon seitson
wird viele Eigenschaften haben, es wäre besser, son als Objektliteral deklarieren zu lassen. Aber dann weiß ich nicht, wie ich den Prototyp einstellen soll.
Etwas tun wie
var father = {
firstProperty: someValue;
secondProperty: someOtherValue;
};
var son = {
thirdProperty: yetAnotherValue
};
son.constructor.prototype = father;
wird nicht funktionieren, da die Prototypenkette verborgen zu sein scheint und die Änderung von constructor.prototype keine Rolle spielt.
Ich denke, ich kann das @ verwend__proto__
Eigenschaft in Firefox, wie
var father = {
firstProperty: someValue;
secondProperty: someOtherValue;
};
var son = {
thirdProperty: yetAnotherValue
__proto__: father
};
son.constructor.prototype = father;
Soweit ich weiß, ist dies jedoch kein Standardmerkmal der Sprache, und es ist besser, es nicht direkt zu verwenden.
Gibt es eine Möglichkeit, den Prototyp für ein Objektliteral anzugeben?