2013-04-05 5 views
2

Chrome과 Safari에서보고 한 내용 모두 불법입니다. 그들은 'this.b'를 가리키는 "예기치 않은 토큰 'this"을보고합니다. 다음은 문제를 표시하는 데 필요한 최소 코드입니다.왜이 자바 스크립트 구문이 불법입니까?

function x(){ this.a = function() {} this.b = function() {} } 

두 개의 선언이 같은 줄에있는 경우에만 발생합니다. 어떤 아이디어? 내게 합법적 인 것처럼 보입니다.
Javascript minifier에서 나오는 것이므로 성가시다.

+1

은을 '이 있어야합니다. 무슨 소화기를 사용하고 있습니까? – Blender

+0

그것이 그 이유입니다. 세미콜론을 사용하십시오. 그래도 불필요한 공백을 제거하지 않으면 귀하의 minifier가 좋다고는 생각하지 않습니다. –

답변

2

자바 스크립트는 새 줄에 세미콜론을 자동으로 삽입합니다. 여기서 누락 된 부분은 원래의 세미콜론으로 성명 끝을 구분합니다.

적절한 JS와 같이 닫는 중괄호 뒤에 세미콜론을 삽입하면 정상적으로 작동합니다.

0

x 함수 안에 첫 번째 문을 종료하는 세미콜론이 없습니다.

세미콜론 삽입은 새 줄에서만 작동합니다. `사이`{}`와`this.b`,

// Valid but nasty 
this.a = function() {} 
this.b = function() {} 

// Valid 
this.a = function() {}; 
this.b = function() {}; 

// Valid 
this.a = function() {}; this.b = function() {}; 
관련 문제