jQuery中(function($){})(jQuery)详解
2015-07-15 10:24
477 查看
简单的说
(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的事实,因为他是作为参数被传进去的。
您可能感兴趣的文章:
相关文章推荐
- jQuery的事件委托实例分析
- jQuery的end()方法使用详解
- JQuery实现点击按钮动态添加input文本框,限制个数
- Jquery autocomplete(自动补全)demo+cookie自动补全
- jquery中时间问题
- jquery ajax error函数详解
- jQuery的bind()方法使用详解
- jQuery的bind()方法使用详解
- jQuery的end()方法使用详解
- jQuery的事件委托实例分析
- jQuery中(function($){})(jQuery)详解
- jQuery实现的进度条效果
- jQuery实现平滑滚动页面到指定锚点链接的方法
- jQuery实现提示密码强度的代码
- jQuery简单实现验证邮箱格式
- 常用jQuery代码分享
- jQuery验证全部输入合法后才能提交
- jquery设置以及获取select和checkbox
- jQuery.validate 中文API
- jquery.validate使用攻略