2012-11-21 3 views
1

자바 스크립트 소스 코드가 있는데, 뭔가 이해가 안됩니다. 제발 도와주세요, 그게 무슨 뜻 이죠?이 방법은 무엇을 의미합니까?

Partnerek = (function() { 

    Partnerek = function() { } 

    //there are functions in this way 
    //I think this is a public function 
    Partnerek.foo = function foo() 
    { 
     //code 
    } 

    //there are functions in this way 
    //this is a non public function 
    function foosecondway() 
    { 
     //code 
    } 

    return Partnerek; 
})() 

이것은 클래스와 같지만 클래스가 아닙니다.

  1. 이것은 무엇입니까?
  2. 왜 프로그래머가 이런 방식으로 작성 했습니까?
  3. 좋은 방법일까요?
  4. 반환 값은 무엇입니까?
  5. 두 함수 "매개 변수"가 코드에서 동일합니까?
+0

이것은 매우 일반적인 현대 Javascript 코드입니다. Javascript로 광범위한 튜토리얼을 찾고 있습니까? 그물을 통해 가이드 및 튜토리얼이 많이 있지만, StackOverflow 개인 과외를 찾는 좋은 장소가 아닙니다. – lanzz

답변

1

나는 그것이 스스로를 실행하는 클래스 빌드 업처럼 보인다. 당신이

var test = new Partnerrek() 

를 부를 것이다, 그래서 만약이 변수는이 클래스의 인스턴스가됩니다 (이것은 반환에 의해 이루어집니다)와

Partnerek = function(){} 

가 호출 될 생성자 것입니다.

+0

왜 이렇게 좋은가요? 이건 느린가요? 제가 이것을 호출 할 때, 이것은 항상 함수를 호출합니다, 그렇지 않습니까? 나는 이미 테스트를 마쳤습니다. 만약 내가 그 물건에 파트 네 레크를 주면 어떻게 될까요? 그리고 저는 그것을 수업과 같이 사용할 수 있지만, 제가 만들었을 때 새로운 세계를 사용하지 않았습니다. nom 조금 혼란스러워? 설명해 주시겠습니까? 아니면 그것에 대해 이야기 해 주시겠습니까? 간단한 수업 방식이 더 빠를까요? – user1693057

+1

간단한 수업으로 정확히 무엇을 의미합니까? Lanzz이 언급했듯이, 이것은 js 클래스를 구축하는 현대적인 방법입니다. 좀 더 살펴 봤는데 주위에 함수를 래핑함으로써이 클래스는 closure & private 범위를 가지게 될 것이라고 생각합니다. 이것은 매우 편리 할 수 ​​있습니다. 아마 이것에 대해 조금 더 설명 할 수 있습니다. http : // stackoverflow .com/questions/1114024/constructors-in-javascript-objects –