2012-09-10 4 views
6

저는 C#과 같은 다른 언어로 프로그래밍하고 있지만 기초부터 JavaScript를 배우고 있습니다. 이 두 가지 방법 중 어느 것이 더 효율적이며 일반적인 규칙으로 사용해야하는지에 대한 질문이 내게 들려왔다.리터럴 표기법 VS. JavaScript에서 객체를 생성하는 생성자

확실한 대답은 없지만 일반적인 장단점을 알고 싶습니다.

감사합니다.

+1

둘 다 사용하고 있으며, 둘 중 하나를 선택하지 않아도됩니다. – Ibu

+1

같은 질문에 대한 더 나은 답변이 여기에 있습니다. http://stackoverflow.com/questions/4859800/should-i-be-using-object-literals-or-constructor-functions – BritishDeveloper

답변

8

일반적으로 개체 리터럴이 있습니다. 스크립트를로드 할 때 구문 분석 만하면되며 스크립트 엔진이 다양한 최적화를 수행 할 수 있습니다.

생성자를 실행해야합니다. 즉 느린 속도가되지만 유효성 검사 코드 등을 쉽게 추가 할 수 있으며 생성자 범위에 숨겨진 공개적이고 권한있는 메서드 및 개인 "특성"을 사용하여 복잡한 개체를 만들 수 있습니다. 또한, 그들은 물론 유용한 프로토 타입을 공유하는 객체를 생성합니다.

4

하나 이상의 성능 효율성을 알지 못합니다. 그러나 리터럴 표기법은 단순성 인수로 인해 선호도를 얻는 것처럼 보이며 생성자 및 new 키워드를 사용하지 않으므로 선호됩니다.

키워드에 의해 생성자와 new 키워드가 JavaScript 언어의 부정적인 특징으로 인식됩니다 (Crockford - JavaScript : 좋은 부분 참조). JSLint는 new Array() 또는 new Object()을 사용할 때도 호출합니다.

관련 문제