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.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage