Javascript-Funktion mit "this =" gibt "Ungültige linke Seite in Zuordnung"
Ich versuche, ein JavaScript-Objekt dazu zu bringen, die "this" -Zuweisungen des Konstruktors eines anderen Objekts zu verwenden und alle Prototypfunktionen dieses Objekts zu übernehmen. Hier ist ein Beispiel dafür, was ich versuche zu erreichen:
/* The base - contains assignments to 'this', and prototype functions
*/
function ObjX(a,b) {
this.$a = a;
this.$b = b;
}
ObjX.prototype.getB() {
return this.$b;
}
function ObjY(a,b,c) {
// here's what I'm thinking should work:
this = ObjX(a, b * 12);
/* and by 'work' I mean ObjY should have the following properties:
* ObjY.$a == a, ObjY.$b == b * 12,
* and ObjY.getB == ObjX.prototype.getB
* ... unfortunately I get the error:
* Uncaught ReferenceError: Invalid left-hand side in assignment
*/
this.$c = c; // just to further distinguish ObjY from ObjX.
}
Ich wäre Ihnen dankbar, wenn Sie darüber nachdenken würden, wie ObjY die Zuweisungen von ObjX zu "diesem" subsumieren soll (d. H. Nicht alle wiederholen müssen)this.$* = *
Zuweisungen in ObjYs Konstruktor) und haben ObjY ObjX.prototype übernehmen.
Mein erster Gedanke ist, folgendes zu versuchen:
function ObjY(a,b,c) {
this.prototype = new ObjX(a,b*12);
}
Idealerweise würde ich gerne lernen, wie man dies prototypisch macht (d. H. Ich muss keinen dieser "klassischen" OOP-Substitute wie verwendenBase2).
Es kann bemerkenswert sein, dass ObjY anonym ist (z.factory['ObjX'] = function(a,b,c) { this = ObjX(a,b*12); ... }
) - wenn ich die richtige Terminologie habe.
Danke.