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 UI CSS Framework开发Widget的经验
Aug 21 Javascript
在浏览器中获取当前执行的脚本文件名的代码
Jul 19 Javascript
extjs中form与grid交互数据(record)的方法
Aug 29 Javascript
JavaScript 函数的执行过程
May 09 Javascript
静态页面html中跳转传值的JS处理技巧
Jun 22 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
Nov 09 Javascript
JQueryEasyUI之DataGrid数据显示
Nov 23 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
Apr 13 Javascript
微信小程序实现评论功能
Nov 28 Javascript
Node 代理访问的实现
Sep 19 Javascript
JS简易计算器实例讲解
Jun 30 Javascript
html5中sharedWorker实现多页面通信的示例代码
May 07 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模板中出现空行解决方法
2011/03/08 PHP
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
js操作时间(年-月-日 时-分-秒 星期几)
2010/06/20 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
jQuery获取标签文本内容和html内容的方法
2015/03/27 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
2016/11/07 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
微信小程序 九宫格实例代码
2017/01/21 Javascript
轻松理解vue的双向数据绑定问题
2017/10/30 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
jQuery AJAX与jQuery事件的分析讲解
2019/02/18 jQuery
微信公众平台 发送模板消息(Java接口开发)
2019/04/17 Javascript
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
Python实现拼接多张图片的方法
2014/12/01 Python
django框架ModelForm组件用法详解
2019/12/11 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
解析Tensorflow之MNIST的使用
2020/06/30 Python
总裁秘书岗位职责
2013/12/04 职场文书
环保建议书500字
2014/05/14 职场文书
公司授权委托书
2014/10/17 职场文书
小学教师节活动总结
2015/03/20 职场文书
总经理岗位职责范本
2015/04/01 职场文书
校运会宣传稿大全
2015/07/23 职场文书