2012-11-14 7 views
1

function ClassA(){ 
    this.value = 5; 
} 

var obj1 = new ClassA; 
var obj2 = new ClassA(); 

console.log(obj1.value); 
console.log(obj2.value); 

둘 다 콘솔에 '5'를 인쇄합니다. 두 방법의 차이점은 무엇입니까 (생성자에 대한 인수 포함 제외)?자바 스크립트의 "new Class"와 "new Class()"의 차이점

+0

답변은 정확하지만 자세한 내용을 알고 싶으면이 동작이 문서화되어 있습니다 (http://es5.github.com/#x11.2.2). –

답변

4

괄호는 선택 사항입니다. 전달할 생성자 매개 변수가없는 경우 생략 할 수 있습니다.

자동 세미콜론 삽입 (source, more) 덕분에 이상하게도 세미콜론이 (때로는) 선택 사항입니다. 이것은 올해 초에 오랜 논쟁을 촉발 시켰고 Douglas Crockford (JSON/JSLint 발명가, JS 전문가)의 응답을 촉발 시켰습니다.

1

전혀 차이가 없습니다.

인수가없고 new이있는 경우 괄호는 선택 사항입니다.

관련 문제