2011-12-19 2 views
2

코드 샘플은 here입니다.새로운 기능 (설정) {...} (jQuery.query || {}); 자바 스크립트에서 의미?

큰 코드 청크는이 트릭은 무엇입니까

new function(settings) { 

로 시작하고

}(jQuery.query || {}); // Pass in jQuery.query as settings object 

로 끝?

여기에서 Eclipse가 2 개의 오류를 찾는 이유는 무엇입니까? Eclipse는 새로운 것을 처음부터 싫어합니다. 그냥 지울까요? 또한 Eclipse는 "NewExpression을 완료하십시오"끝에 ]을 마지막에 넣기를 원합니다.

이것은 무엇을 의미합니까? []으로 작성하는 방법은 무엇입니까?

+0

[새 기능()과 JavaScript에서 소문자 "f"의 중복 가능] (http://stackoverflow.com/questions/2274695/new-function-with-lower-case-f-in-javascript)) –

답변

3

이것은 자체 호출 JavaScript 함수를 만드는 한 방법입니다. 그것은 단순히 손목의 신속한 한 번으로 선언되고 호출되는 함수입니다. 무엇 이클립스에 대해 불평

http://sparecycles.wordpress.com/2008/06/29/advanced-javascript/

정말 명확하지 않다. 구문은 완전히 유효합니다. Eclipse가 올바르게 처리하지 못할 수도 있습니다.

EDIT : 전달 된 인수 : (jQuery.query || {})은 jQuery.query를 함수에 전달합니다. jQuery.query가 null, false, 0 또는 정의되지 않은 경우 (falsey) 인 경우 빈 참조 리터럴이 대신 전달되어 null 참조를 피합니다.

+0

Javascript로 인라인으로 작성하여 코드를 호출 할 수 있습니까? – Dims

+0

새로운 함수 (x) {alert (x);} ("foo");를 쓸 수 있다면'alert ("foo"); – Dims

+2

@Dims - 즉각적으로 실행되는 함수에 코드를 두는 것은 전역 변수에 추가하는 대신 작성한 모든 작업 변수가 해당 함수에서 로컬 범위를 가지므로 (함수가 완료되면 사라짐) 이점을 유지하므로 자체적 인 코드 블록. 경고는 아무런 부작용이 없기 때문에 단지 경고 용으로는하지 않을 것입니다. (일부 상황에서는 좀 더 명확하지 않은 장점이 있지만 여기서 설명하려고하지는 않습니다.) – nnnnnn

4

이 익명 함수를 생성하고, 파라미터로서

(jQuery.query || {}) 

함께 호출한다.

는 불을 지르고에서

new function(x){alert(x);}("foo"); 

을 시도합니다.

+0

jQuery.query는 무엇입니까? 이 부분을 다른 곳에서 정의해야합니까? – Dims

+0

jQuery.query는 본문에도 사용됩니다. 뭔가 의미가 있니? – Dims

1

구성이 새로운 기능을 정의하고 있습니다. 주요 브라우저에서 작동하지만 약간 다른 구문을 사용하는 것이 좋습니다.

(function() { 
    ... 
})(); 

여기서 함수를 정의한 다음 즉시 호출합니다. 코드에서이 함수는 매개 변수도 전달됩니다.

불평하는 Eclipse는 아마도 버그 일 것입니다.

관련 문제