Estoy tratando de definir un objeto multidimensional en JavaScript con el siguiente código:Javascript objeto multidimensional
function A(one, two) {
this.one = one;
this.inner.two = two;
}
A.prototype = {
one: undefined,
inner: {
two: undefined
}
};
A.prototype.print = function() {
console.log("one=" + this.one + ", two=" + this.inner.two);
}
var a = new A(10, 20);
var b = new A(30, 40);
a.print();
b.print();
El resultado es:
one=10, two=40
one=30, two=40
, pero espero que
one=10, two=20
one=30, two=40
¿Qué estoy haciendo mal? ¿Es una variable inner
una variable de clase, no una instancia?
Motor de JavaScript: Google V8.
Al pensar en JavaScript, no piense en términos de 'instancia' en términos de' alcance'. – Hogan
@Hogan, buen punto. Es importante recordar que, aunque JS tiene estructuras que parecen clases, en realidad son objetos de primera clase y deben tratarse como tales. –