jQuery中(function($){})(jQuery)详解_jquery

WBOY
풀어 주다: 2016-05-16 15:50:28
원래의
1043명이 탐색했습니다.

간단히 말하면

(function($){
 //code
})(jQuery)
로그인 후 복사

익명 함수를 선언합니다. 즉, jQuery 객체를 함수에 매개변수로 전달합니다.

예를 들어주세요

// 全局
var str = "全局字符串...";
(function () { // 第1层
  (function () { // 第2层
    (function () { // 第3层
      (function () { // 第4层 层数越多,访问全局越慢
        console.time('全局');
        for (var i=0; i<1e6; i++) {
          str += Math.random().toString().substr(2, 2);
        }
        console.timeEnd('全局');
      })();
    })();
  })();
})();
 
// 局部
(function () { // 第1层
  (function () { // 第2层
    (function () { // 第3层
      (function () { // 第4层
        var str = "内部字符串...";
        var random = Math.random;
        console.time('内部');
        for (var i=0; i<1e6; i++) {
          str += random().toString().substr(2, 2);
        }
        console.timeEnd('内部');
      })();
    })()
  })();
})();

로그인 후 복사

코드를 실행하면 효과를 볼 수 있을 것입니다. 상대적으로 느리므로 잠시 기다려주세요.
방금 테스트한 결과 메모리가 작은 일부 컴퓨터에서는 브라우저가 쉽게 충돌할 수 있다는 사실을 발견했습니다.
크롬은 문자열까지 캐싱할 정도로 무장되어 있지만 별 효과가 없습니다

속도와는 상관이 없는 것 같아요.

(function($){
// code
})(jQuery)

로그인 후 복사

jQuery 플러그인이 많고 사용하는 변수나 메소드 이름이 다른 플러그인과 동일한 이름인지 확신할 수 없으므로 모든 플러그인 코드를 익명 함수로 캡슐화해야 합니다. ;

플러그인은 jQuery를 사용하기 때문에 jQuery를 익명 함수로 가져와서 $ 변수 참조를 사용해야 합니다(모두가 $ 사용에 익숙하기 때문입니다). 물론 $를 전역적으로 사용할 수도 있지만 첫 번째 조건은 충족될 수 없습니다.
캡슐화된 코드를 실행해야 하므로 익명 함수를 실행하고 jQuery 매개변수를 전달해야 합니다.

요약

사실 $ 기호를 보호하기 위한 것입니다. 외부에서 $를 방해하는 다른 라이브러리를 도입하더라도 익명 함수의 $는 jQuery라는 사실을 방해하지 않습니다. 매개변수.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿