자바 스크립트 함수에서 함수 작성하는 다음과 같은 방법으로 설명해주십시오 :자바 스크립트 기능
(function(){
// some code
})()
내가 때문에 중괄호 "()"로, 기능이 바로 실행 것이라는 사실을 이해를하지만,하지만, 무엇을 중괄호에 함수를 묶는 것은 의미합니까?
자바 스크립트 함수에서 함수 작성하는 다음과 같은 방법으로 설명해주십시오 :자바 스크립트 기능
(function(){
// some code
})()
내가 때문에 중괄호 "()"로, 기능이 바로 실행 것이라는 사실을 이해를하지만,하지만, 무엇을 중괄호에 함수를 묶는 것은 의미합니까?
구문이 잘못되었습니다. 수정 : 수정 됨. 당신이 한 번만 호출 할 일반 함수 정의에서
봐 : 당신이 바로 그것을 실행할 수 있도록이 코드를 줄일 수
function add(x,y) {
var z = x + y;
// do something with z
}
add(2,3);
, 그것은을 추가 이름을 할 필요가 없다 :
(function(x ,y) {
var z = x + y;
// do something with z
})(2,3)
함수를 호출 가능한 식으로 만들기 위해 괄호 집합으로 둘러싸인 방법에 유의하십시오. 이 패턴은 종종 특정 변수의 클로저 (상태 캡처)를 만드는 데 사용됩니다.
jQuery.noConflict(); //Disables the use of $ in the global scope
(function($) {
//Safely use $ inside this function
$('.link').click(function(e) {
//etc
});
})(jQuery);
답변으로 jQuery를 관리하는 데 거의 가치가있는 +1입니다. – RobG
이 특별한 이유 때문에이 자체 호출 익명 패턴이 항상 나타납니다. 그래서 그것을 포함 시켰습니다. jQuery -1 없음 :) –
RobG이 지적했듯이, 이것은 원래 질문에서 유일하게 유효한 진술입니다.
(function(){
// some code
}())
이 코드는 구문 분석 된 직후에 실행되며 나머지 코드에서 함수 내부의 코드 범위를 벗어나는 방법을 제공합니다. 이 폐쇄 (Closures on MDN 참조) 및 help with memory leaks 스크립트에서 호출 할 수 있습니다.
코드를 그룹화 연산자로 묶으면 함수 선언에서 함수 표현식으로 변경됩니다 (여기서 이름은 선택적이며 대개 생략됩니다). 그 패턴은 흔히 "즉시 호출 된 함수 표현식"(iife) 또는 "즉시 실행 된 함수 표현식"(iefe)으로 불립니다.
한 번 호출되는 함수 선언을 바꾸는 데 사용됩니다. 모듈 패턴의 기본이기도합니다.
두 번째는 구문 오류입니다. 함수 선언에 이름이 있어야합니다. – RobG
코멘트 주셔서 감사합니다. –
[이게 무슨 뜻입니까? (함수 (x, y)) {...}) {a, b}; (이 스크립트/자바 스크립트/jQuery 구문의 의미는 무엇입니까?] (http : //stackoverflow.com/questions/3921922/what-does-this-mean-function-xyab-in-javascript) –