在我的最后一个问题之后,这个问题对我来说更准确:
例子:
function Foo() {
this.bla = 1;
var blabla = 10;
blablabla = 100;
this.getblabla = function () {
return blabla; // exposes blabla outside
}
}
foo = new Foo();
我现在理解的:
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.
我理解正确吗?
另外 - 如果我在承包商中包含var blabla = 10;
并getblabla
使用它的函数,那么对于 Foo("foo"...) 的每个实例,将在内存中保存一个包含此“私有”变量的 Foo 承包商函数。还是与私有变量的位置相同的 Foo 函数 - 对于 Foo 的所有实例(如“foo”)?