después de mi última pregunta, ésta es más preciso para mí:variables “var”, "este" variables y variables "globales" - dentro de un JavaScript Constructor
ejemplo:
function Foo() {
this.bla = 1;
var blabla = 10;
blablabla = 100;
this.getblabla = function() {
return blabla; // exposes blabla outside
}
}
foo = new Foo();
lo que Comprenda ahora:
this.bla = 1; // will become an attribute of every instance of FOO.
var blabla = 10; // will become a local variable of Foo(will **not** become an attribute of every instance of FOO), which could be accessed by any instance of FOO - only if there's a method like "this.getBlabla". that's a "closer" ?
blablabla = 100; // will define a **new** (or change if exist) global(window) variable.
¿Entiendo correctamente?
Además, si incluyo var blabla = 10;
y la función getblabla
que lo usa en el contratista, entonces para cada instancia de Foo ("foo" ...), se guardará una función de contratista Foo en la memoria que incluye este variable "privada". o será la misma función Foo que el lugar para las variables privadas - para TODAS las instancias (como "foo") de Foo?
Sus primeras tres afirmaciones son correctas. No sigo completamente lo que está preguntando por su última pregunta. ¿Puedes aclarar?¿Puedes probar variables no nombradas de manera similar? Es difícil de seguir. Gracias. – Brad
También es complicado para mí. Quiero decir, es un cierre, ¿verdad? y es un contratista, entonces, ¿por cada instancia de Foo, habrá un nuevo cierre de Foo en la memoria? ¿Cómo funciona esto? Gracias. – Daniel