2012-01-19 4 views
2

저는 Stack Overflow와 웹 전반을 검색해 왔습니다. 일부 레거시 자바 스크립트에서 볼 수있는 적절한 설명이 있습니다. 지금까지 나는 운이별로 없었기 때문에 실제로 질문을 게시하는 극단적 인 조치를 취하기로 결정했습니다. :-)자바 스크립트 객체 생성 메소드

코드는 초창기는 아니지만, 프로젝트에 참여한 사람과 내가 원래 여기에 오기 전에 남겨 두었던 개발자에게 (물론) 참여한 것보다 우선합니다.

그래서 여기에 우리가 간다 : 일반적으로

내가 뭔가 비슷한 제품을 더 보려면 자바 스크립트 '클래스'를 생성 @ 코드를 찾고 있어요 때 또한

var SomeClass = function() { ..stuff.. } 

...other code... 

var objSomeClass = new SomeClass(); 

익숙한 문자 자바 스크립트입니다 :

var someLiteral = { ..stuff.. } 

...other code... 

var someResult = someLiteral.someFunction(); 

레거시 코드에서 볼 수있는 것은 두 가지 스타일을 결합한 것으로 보이며 이전에는 아무도 본 적이 없습니다. 그래서 우리가 가지고 것은 :

var someLiteral = { ..stuff.. } 

...other code... 

var objSomeLiteral = new someLiteral(); 

또한, 동일한 코드에 다음과 같이 선언은 다음과 같습니다

function doStuff() { ..stuff.. } 

...other code... 

var objDoStuff = new doStuff(); 

다시, 나는 본 적이 사람이 전에 꽤 같이 코드를 작성합니다.

의미 상으로는 잘못된 코드입니까, 아니면 내가 인식하지 못하는 이유가 있습니까? 항상 가능 합니다만, 나는이 시점에서 JavaScript 전문 지식을 주장하지 않습니다.

코드가 제대로 작동하지만 '좋은'코드가 아닌 경우 다시 작성하고 싶습니다. 사촌 나는 그저 항문이야. :-)

고마워요!

+0

첫 번째 사례와 마지막 사례는 같습니다. 유일한 차이점은 첫 번째 경우에 익명의 함수가 있고 마지막에 명명 된 함수가 있다는 것입니다. 또한 실제로 잘못된 JavaScript이기 때문에 세 번째 사례를 보았을 때 참조를 제공 할 수 있다면 좋을 것입니다. –

+0

원본 코드를 게시하고 싶지만 처음에는 코드를 심각하게 위생적으로 처리해야합니다. 그래, 나도 알아 - 자바 스크립트이고 기술적으로는 정말로보고 싶어하는 사람이다. 하지만 여전히 사용자 인증 프로세스에 묶여 있으므로 게시하지 않을 것입니다. –

+0

좋습니다. 따라서 사례 1과 사례 4는 기능적으로 동일합니다. 나는 그것을 몰랐다. 실제로 나는 그것에 대해 실제로 생각하고있는 것이 분명해 보입니다. :-) –

답변

2

new <Object>은 구문 오류입니다. 그것은 단순히 유효한 JavaScript가 아닙니다. new의 피연산자는 함수 여야합니다.

"클래스"구문 예제에 표시된 것처럼 생성자로 함수를 사용하는 것은 매우 일반적인 방법입니다.

+0

그건 정확히 내가 생각한거야. 항상이 코드를 실행하면 실제로 실제로 실행되지 않을 수도 있습니다. 어떤 것들이 '일하는'것처럼 보이는지 설명 할 것입니다. 어쨌든 도움 주셔서 감사합니다. –