Estoy tratando de obtener un objeto JavaScript para usar las asignaciones "this" del constructor de otros objetos, así como asumir el prototipo de todos esos objetos funciones. He aquí un ejemplo de lo que estoy tratando de lograr:La función Javascript usando "this =" da "lado izquierdo no válido en la asignación"
/* 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.
}
Estaría agradecido por sus pensamientos sobre cómo tener ObjY subsumir las asignaciones de ObjX a 'esto' (es decir, no tiene que repetir todos los this.$* = *
asignaciones de Constructor de ObjY) y tienen ObjY asumir ObjX.prototype.
Mi primer pensamiento es para tratar el siguiente:
function ObjY(a,b,c) {
this.prototype = new ObjX(a,b*12);
}
Idealmente me gustaría aprender cómo hacer esto de una manera prototípica (es decir, no tienen que utilizar cualquiera de esos sustitutos de programación orientada a objetos 'clásicos' como Base2).
Cabe señalar que ObjY será anónimo (por ejemplo, factory['ObjX'] = function(a,b,c) { this = ObjX(a,b*12); ... }
) - si tengo la terminología correcta.
Gracias.
relacionados: [? Por qué no puedo asignar un nuevo valor a “este” en una función prototipo] (http: // stackoverflow.com/q/9713323/1048572) – Bergi