내부,이 사람은 나를 위해 더 정확 :"VAR"변수는, "이"변수와 "글로벌"변수 - 내 마지막 질문 후 자바 스크립트 생성자
예 :
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의 ALL 인스턴스 (예 : "foo")에 대해 사적인 변수를위한 장소와 동일한 Foo 함수가 될 것입니까?
첫 번째 3 가지 주장이 정확합니다. 나는 당신이 당신의 마지막 질문을 요구하는 것을 완전히 따르지 않습니다. 당신은 명확히 할 수 있습니까?비슷한 이름의 변수도 시도해 볼 수 있습니까? 따르기가 어렵습니다. 감사. – Brad
그것은 나에게도 복잡합니다. 내말은 ... 폐쇄 겠지? 그리고 그것은 계약자입니다 - 그래서 Foo의 모든 인스턴스에 대해 Foo의 새로운 클로저가 메모리에있을 것입니까? 이 물건들은 어떻게 작동합니까? 감사. – Daniel