[乐意黎原创]JS 相关函数理解
2017-03-27 17:05
309 查看
1、(function($) {…})(jQuery);
1)、原理:
这实际上是匿名函数,如下:
function(arg){…}
这就定义了一个匿名函数,参数为arg
而调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即:
(function(arg){…})(param)
这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数
而(function($){…})(jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery
相当于funtion output(s){…};output(jQuery);或者var fn=function(s){…};fn(jQuery);
2)、作用(非常有用):
这种写法的最大好处是形成闭包。在(function($) {…})(jQuery)在内部定义的函数和变量只能在此范围内有效。
形成是否函数函数、私有变量的概念。比如:
[javascript] view
plain copy
var i=3;
function init(){
alert("外层init:"+i);
}
(function($) {
var i=2;
function init(){
alert("内层init:"+i);
}
init();
})(jQuery);
init();
执行结果:
内层init:2
外层init:3
2、$(function(){…}); jQuery(function($) {…}); $(document).ready(function(){…})
这三个的作用是一样的,本人比较需要用第一种、书写简单。
文档载入完成后执行的函数。
其它测试:
图一:
图二:
图三:
图四:
乐意黎原创
1)、原理:
这实际上是匿名函数,如下:
function(arg){…}
这就定义了一个匿名函数,参数为arg
而调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即:
(function(arg){…})(param)
这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数
而(function($){…})(jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery
相当于funtion output(s){…};output(jQuery);或者var fn=function(s){…};fn(jQuery);
2)、作用(非常有用):
这种写法的最大好处是形成闭包。在(function($) {…})(jQuery)在内部定义的函数和变量只能在此范围内有效。
形成是否函数函数、私有变量的概念。比如:
[javascript] view
plain copy
var i=3;
function init(){
alert("外层init:"+i);
}
(function($) {
var i=2;
function init(){
alert("内层init:"+i);
}
init();
})(jQuery);
init();
执行结果:
内层init:2
外层init:3
2、$(function(){…}); jQuery(function($) {…}); $(document).ready(function(){…})
这三个的作用是一样的,本人比较需要用第一种、书写简单。
文档载入完成后执行的函数。
其它测试:
图一:
图二:
图三:
图四:
乐意黎原创
相关文章推荐
- js 操作select相关方法函数
- js日期时间相关函数
- js函数理解
- 对于js中eval()函数的理解 和 写一个函数trim() 去掉字符串左右空格
- 对js里bind函数的理解
- 理解SetWindowOrg等相关函数
- js中几个正则表达式相关函数使用时g标志的作用
- JS中与日期相关的函数
- socket套接字的相关函数和理解
- 父页面调用iframe里的js函数相关例程,Iframe之间通讯研究
- socket套接字的相关函数和理解
- socket套接字的相关函数和理解
- js:函数的理解。
- 对于js中eval()函数的理解 和 写一个函数trim() 去掉字符串左右空格
- strtok函数相关理解
- JS中正规表达式相关函数详解
- JS对时间的相关处理函数与应用
- js函数相关
- 理解prototype.js的bind函数
- Python多线程的创建,相关函数和守护线程的理解