, 내 코드는 내가 var 키워드를 생략 할 때 일 : 나는왜 전역 변수와 this.something 변수가 decleared되지 않습니까?
var this.something = 1;
var something.something = 1;
을 쓸 때
this.something = 1;
something.something = 1;
을하지만, 그렇지 않습니다 작업.
왜?
, 내 코드는 내가 var 키워드를 생략 할 때 일 : 나는왜 전역 변수와 this.something 변수가 decleared되지 않습니까?
var this.something = 1;
var something.something = 1;
을 쓸 때
this.something = 1;
something.something = 1;
을하지만, 그렇지 않습니다 작업.
왜?
var
에 유효한 식별자가 필요하고 .
이 식별자에 유효한 문자가 아니기 때문에 나는 가정합니다.
변수 이름이 실제로 this.something
인 것으로 생각합니다. 이는 유효하지 않습니다.
두 버전을 테스트 할 때 약간 다른 오류가 발생합니다.
는SyntaxError: Unexpected token this
something.something
이있는 사람은 나에게 말한다 :
this.something
을 가진 사람은 나에게 말한다
SyntaxError: Unexpected token .
같은 오류,하지만 첫 번째에서 유효하지 않은 토큰 키워드 this
입니다.
this
필드 (멤버 필드) 또는 다른 개체의 필드를 선언 할 수 없습니다. 단순히 유효한 구문이 아닙니다.
var
을 사용하면 함수 수준이거나 전역 함수가 아닌 경우 전역 변수를 선언 할 수 있습니다. Patrick이 말했듯이 변수 이름에는 마침표가 포함될 수 없습니다.
var
은 변수를 선언하기위한 구문입니다. Javascript에서는 단순히 속성에 값을 할당하여 속성을 객체에 첨부합니다.
var 문을 사용하여 이러한 오류가 발생합니까? 뭔가 정의 된 네임 스페이스가 있다고 말해야합니다. Ext.ns ('something'); – ppecher
@ppecher : 네,'var'을 사용합니다. 그것은 변수 선언을위한 키워드입니다. 변수 이름에'something.something'에 저장된 값을 사용하기를 원한다면,'window'의 모든 속성 인 전역 변수에 관해서 이야기하지 않는다면 운이 없게 될 것입니다. 이 경우'window [something.something]'을 할 수 있습니다. – user113716