Jquery中的(function($){...})(jQuery)
来源:互联网 发布:英雄联盟单机版mac 编辑:程序博客网 时间:2024/06/05 18:09
解释一下究竟“(function($){...})(jQuery)”该怎样理解:
释疑解惑:
代码一:
<script type="text/javascript">(function(name){alert(name);})("GaoHuanjie");</script>
说明:在浏览器中运行上面代码,会弹出一个对话框,对话框的内容为GaoHuanjie。
上面代码中执行的JavaScript脚本和“(function($){...})(jQuery)”是一样的,也就是说“(function($){...})(jQuery)”中的函数会自动被执行,那么究竟该怎样理解“(function($){...})(jQuery)”呢?“(function($){...})(jQuery)”实际上表示的是已处于调用状态的匿名函数:function($){...}是定义的匿名函数,参数为$(之所以将参数声明为$是为了不与其他库冲突);为了调用该函数则在该匿名函数的后面添上了括号和实参(这里为jQuery),但又由于操作符的优先级,函数本身也需要用括号,所以又为匿名函数添加了括号。释疑解惑:
一、我运行下面代码为什么报错——jQuery is not defined:
<script type="text/javascript">(function($){alert($);})(jQuery);</script>嗯嗯,浏览器在解析上述js脚本时确实会出现问题,假如为jQuery添加英文双引号,再次使用浏览器运行上述脚本则不会出错,为什么不加就会出错呢,呵呵呵,其实这里的jQuery还是一个变量,如果为上述代码引入jQuery库,再次使用浏览器运行上述代码则不会出现问题:
<script type="text/javascript" src="./jquery-1.6.2.js"></script><script type="text/javascript">(function($){alert($);})(jQuery);</script>在引入jQuery库后之所以不会出错是因为jQuery库中定义了jQuery变量。
二、和$(function(){ })相比,(function($){...})(jQuery)的执行时机也是在网页DOM加载完毕后才执行吗?
不是的,比如如下例子:
<script type="text/javascript">(function(){alert(document.getElementById("name").value);})();</script>上述例子在浏览器中运行的时候会报错,究其原因(function(){...})()函数的执行时机并不是在DOM加载完毕后才执行,而是随着页面自上而下来执行,如果将其改成如下代码则再次使用浏览器运行脚本则不会出现问题:
<html><script type="text/javascript">(function(){alert(document.getElementById("name").value);})();</script>
一句话:“$(function(){ });”用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在;“(function(){})(jQuery);”用于存放开发插件的代码,执行其中代码时DOM不一定存在。
0 0
- Jquery中的(function($){...})(jQuery)
- jQuery中的(function($){...})(jQuery)
- Jquery中的(function($){...})(jQuery)
- jquery中的$(function(){});函数
- jquery插件中的(function(){})
- Jquery—Jquery中的(function($){...})(jQuery)
- jquery中的$(function(){...})什么时候执行
- jquery中的$(function(){...})什么时候执行
- jQuery(function($)
- (function($){...})(jQuery)
- (function($) {})(jQuery)
- (function($){})(jQuery)
- jQuery $(function(){...});
- (function($){})(jquery);
- (function($){})(jQuery)
- (function($){})(jQuery)
- (function($){...})(jQuery)
- (function($){})(jQuery)和(jQuery)(function($){})
- SwipeRefreshLayout的使用方法
- leetcode:sort:Wiggle Sort II(324)
- 设备驱动的probe、remove以及shutdown的顺序
- easyui增删改查全部代码
- 腾讯高级工程师:一道面试题引发的高并发性能调试思考
- Jquery中的(function($){...})(jQuery)
- android studio 去除APP的应用标题栏
- Bootstrap Form两列布局
- 激活函数-Concatenated Rectified Linear Units
- theano第四课(一些例子)
- 维护实用Linux和oracle命令
- 反序列化
- PHP设计模式系列 - 装饰器
- iOS中performSelectorOnMainThread刷新图片