在我的最后一个问题后,这个人是更准确的对我说:“VAR”变量“这个”变量和“全局”变量 - JavaScript构造
例如:
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”)?
你的前三个断言是正确的。我并不完全按照你最后一个问题的要求。你能澄清吗?你也可以尝试变量的名字没有这么相似吗?这很难遵循。谢谢。 – Brad 2012-08-14 16:59:57
对我来说也很复杂。我的意思是 - 关闭了,对吧?而且它是一个承包商 - 因此,对于Foo的每一个实例,内存中都会有新的Foo关闭?这些东西如何工作?谢谢。 – Daniel 2012-08-14 17:03:23