>  기사  >  웹 프론트엔드  >  JavaScript 익명 함수 사용 분석_javascript 기술

JavaScript 익명 함수 사용 분석_javascript 기술

WBOY
WBOY원래의
2016-05-16 16:14:151159검색

이 기사의 예에서는 JavaScript 익명 함수의 사용법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 내용은 다음과 같습니다.

1. 함수를 정의하세요

JavaScript에서는

과 같이 "함수 선언"과 "함수 표현식"을 통해 함수를 정의할 수 있습니다.

1. "함수 선언"을 통해 함수를 정의합니다

function t1(){}

2. "함수 표현"을 통해 함수를 정의합니다

t2 = function(){}

그러나 두 가지 방식으로 함수를 정의하면 효과가 다릅니다
t1은 '어휘 분석' 중에 함수 선언입니다. AO.t1 = function(){},-------------'어휘 분석' 단계에서 역할을 합니다
t2는 할당 작업입니다. 'run' 동안 AO.t2 = function(){}, 값은 오른쪽 표현식에서 반환된 결과입니다. ------'run'에서만 작동합니다. 무대

2. 익명 기능

자바스크립트에서는 괄호() 안의 문장이 표현식으로 실행됩니다. 위에서 언급한 것처럼 "함수 표현식"을 사용하여 함수를 정의할 수 있습니다. 그런 다음
과 같이 () 안에 함수를 정의할 수 있습니다.

(function t3(){alert(' i am t3');})

함수에서 이름을 사용하지 않는 경우 다음과 같이 수정하세요

(function(){alert(' i am t3');})

()에 포함된 문장은 표현식이므로 반환값을 가지고 있습니다. (function(){alert(' i am t3');})의 반환값은 바로 호출할 수 있는 정의된 함수입니다. ,

(function(){alert(' i am t3');})()

그러므로 괄호() 안에 이름 없이 함수를 정의하는 것을 익명 함수라고 합니다. 이와 같이 익명 함수가 전역 상황을 오염시키지 않고 즉시 실행되는 것을 함수 표현식의 즉시 실행이라고 합니다.

3. jquery는 익명 함수입니다

jquery의 코드는 익명 함수로 캡슐화되어 있습니다. 이것은 jquery의 가장 바깥쪽 코드입니다.

(function(window,undefined){})(window);//立即调用

그런데 jquery가 창을 통과하지만 정의되지 않은 이유는 무엇입니까?

답변: 창 전달의 목적은 검색 속도를 높이고 변수 쿼리 시간을 줄이는 것입니다. 예를 들어 다음 js 코드

function(){
 function(){
   function(){
  function(){
   document.getElementById();
//这个document将会沿作用域层层上找,直到最外层window全局。
  }
   }
 }
}

지역 변수의 내부 검색 속도를 높이기 위해 jquery는 창을 매개 변수로 직접 전달하여 창이 jquery의 내부 AO에 있도록 합니다.

undefine을 전달하지 않는 이유는 안전을 위한 것입니다. IE 및 FF의 하위 버전에서는 undefine=3과 같이 undefed를 재할당할 수 있기 때문입니다.

로컬 변수를 정의되지 않음(이름은 정의되지 않음)으로 선언하고, 동시에 매개변수를 전달하지 않으면 값은 자연스럽게 정의되지 않습니다

이 기사가 모든 사람의 JavaScript 프로그래밍 설계에 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.