다음과 같은 작업을하위 이름 공간을 선언 할 때 왜 var을 사용할 수 없습니까?
var NameSpace = NameSpace || {};
NameSpace.Foo = 2;
그러나이하지 않는 않는 이유는 무엇입니까?
var NameSpace = NameSpace || {};
var NameSpace.Foo = 2;
스페이스에 관해서 가변 감속의 내부 동작 어떤 통찰력
인정 될 것이다.다음과 같은 작업을하위 이름 공간을 선언 할 때 왜 var을 사용할 수 없습니까?
var NameSpace = NameSpace || {};
NameSpace.Foo = 2;
그러나이하지 않는 않는 이유는 무엇입니까?
var NameSpace = NameSpace || {};
var NameSpace.Foo = 2;
스페이스에 관해서 가변 감속의 내부 동작 어떤 통찰력
인정 될 것이다.JavaScript에 네임 스페이스가 없습니다. 코드의 첫 번째 줄은 이름이 Namespace
인 변수를 선언하고 값이 대상이다 :
var NameSpace = NameSpace || {};
그런 다음 당신이 개체에 특성Foo
를 만들고, 그것에 값을 할당합니다
NameSpace.Foo = 2;
결론 : 변수와 객체 속성은 다른 것 (다른 차이점은 변수가 범위를 가지지 만 속성은 그렇지 않음)입니다. var
statement은 변수 선언에만 사용됩니다.
var
은 기존 변수를 수정하지 않고 새 변수를 선언하기 위해 예약되어 있습니다.
또한 .
은 변수 이름에 대해 유효하지 않은 문자입니다. ECMA 스크립트는 후드 아래에 떨어져 같은
var foo;
foo = foo;
이 라인을 분리합니다
var foo = foo;
작품 때문이다. 이 개념은 보통 호이스트이라고합니다.
두 번째 코드 단편은 객체 속성을 할당하므로 사용할 수 없습니다. var
키워드는 현재 변수, 기호을 생성하고자 함을 의미하므로 현재 실행 컨텍스트 내에서 말합니다. 당신은 물론 무엇을 할 수 있는지
는이
NameSpace
개체의 개체 속성 Foo
을 할당에서 변수 Foo
을 만들 것 var Foo = NameSpace.Foo = 2;
입니다
2
NameSpace.Foo는 변수가 아니며 개체 속성입니다. – bfavaretto