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


Posted in Javascript onJuly 15, 2015

简单的说

(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('内部');
      })();
    })()
  })();
})();

运行代码 就可以看到效果了,比较慢,骚等片刻。
我刚刚测试发现一些内存小的电脑容易直接导致浏览器崩溃、
chrome武装到牙齿了,连字符串都缓存,看不出多大效果、

和速度应该没关系,我是这么认为的。

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

jQuery插件众多,你无法确定自己使用的变量或者方法名不于其他插件重名,所以需要将所有插件代码封装到一个匿名函数当中;

由于插件使用了jQuery所以需要导入jQuery到匿名函数中,同时使用$变量引用(因为大家已经习惯了使用$)。当然你在全局下也可以使用$,但是无法完成第一个条件;
封装的代码必须执行,所以要执行匿名函数同时传入jQuery参数。

总结

其实是为了保护$符号,不管外界是否引入了另外有干扰$的库,都不会干扰匿名函数中$就是jQuery的事实,因为他是作为参数被传进去的。

Javascript 相关文章推荐
实用的Jquery选项卡TAB示例代码
Aug 28 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
Jan 10 Javascript
jQuery中[attribute!=value]选择器用法实例
Dec 31 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
Jun 16 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
Jan 03 Javascript
探寻JavaScript中this指针指向
Apr 23 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
Feb 08 Javascript
JS设置时间无效问题的解决办法
Feb 18 Javascript
在vue.js中抽出公共代码的方法示例
Jun 08 Javascript
Js自定义多选框效果的实例代码
Jul 05 Javascript
JavaScript 用fetch 实现异步下载文件功能
Jul 21 Javascript
vue按需加载实例详解
Sep 06 Javascript
jQuery的事件委托实例分析
Jul 15 #Javascript
jQuery的end()方法使用详解
Jul 15 #Javascript
浅谈$(document)和$(window)的区别
Jul 15 #Javascript
浅谈window对象的scrollBy()方法
Jul 15 #Javascript
jQuery的bind()方法使用详解
Jul 15 #Javascript
纯JavaScript实现的分页插件实例
Jul 14 #Javascript
javascript实现网页字符定位的方法
Jul 14 #Javascript
You might like
PHP高级对象构建 多个构造函数的使用
2012/02/05 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
浅析XMLHttpRequest的缓存问题
2013/12/13 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
JavaScript中双叹号(!!)作用示例介绍
2014/04/10 Javascript
基于javascript实现简单计算器功能
2016/01/03 Javascript
微信小程序实现多宫格抽奖活动
2020/04/15 Javascript
详解vuex结合localstorage动态监听storage的变化
2018/05/03 Javascript
简单谈谈javascript高级特性
2019/09/04 Javascript
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
Python常见文件操作的函数示例代码
2011/11/15 Python
Python基于Tkinter的HelloWorld入门实例
2015/06/17 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
Tensorflow 实现释放内存
2020/02/03 Python
python 伯努利分布详解
2020/02/25 Python
html5使用canvas压缩图片的示例代码
2018/09/11 HTML / CSS
瑞士国际航空官网:SWISS
2016/07/21 全球购物
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
前台文员岗位职责
2013/12/28 职场文书
新书发布会策划方案
2014/06/09 职场文书
公司人事专员岗位职责
2014/08/11 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
大学生实习介绍信
2015/05/05 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书
2019年自助餐厅创业计划书模板
2019/08/22 职场文书
八年级作文之友谊
2019/12/02 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python
Html5生成验证码的示例代码
2021/05/10 Javascript
新手入门Mysql--概念
2021/06/18 MySQL