js匿名函数以及js插件的编写:
注:该文章使用的最常用的匿名函数方式,还有其他方式
说明:js的匿名函数一般的文档中很少讲到,但是它确是js中很重要的知识,
尤其是在js插件编写方面占有重要地位。
1、window是全局的所以调用时候可以直接使用
(function(window){ var info={ getInfo:function(){ alert("you are a good boy!"); }, getOff:function(){ alert("off"); } } window.info=info; //return info; })(window);
调用:info.getInfo()或者window.info.getInfo();
说明:由于浏览器本身就有window对象,因此调用的时候可以直接使用
window.匿名函数中的对象.相应的方法,当然window也可以省略。如果
浏览器中本身没有该对象则不能使用上面原理,情况如下:
2、var ggg=(function(){ var info={ getInfo:function(){ alert("you are a good boy!"); }, getOff:function(){ alert("off"); } } //注意这种方式必须带返回值否则不能取到里面的属性和方法 return info; })();
调用:ggg.getInfo()
说明:如果我们直接使用
(function(){
//字定义的方法或变量
})()
默认为window调用;我们也可以像2中直接将匿名函数赋给一个变量
但是注意,使用这种方式调用匿名函数中的对象或属性时候,函数里
面本身要返回相应返回值,否则外面使用变量点的方式无法调用。
3、调用区别(自己尝试):
//========== /* //调用一 (function(document,name,wt){ alert("gb======="+name+wt); })(document,"shengzhen","I am here where are you !") //1、括号你面引号里面的内容表示传递的参数,可以直接在匿名函数中使用 //2、document对象浏览器自带 */ /* //调用二 (function(ggg,name,wt){ alert("gb======="+name+wt); })(ggg,"shengzhen","I am here where are you !") //ggg是自定义的 */ //调用三 (function(name,wt){ //默认为winow调用 //alert(this+"gb======="); alert(name+wt); })("shengzhen","I am here where are you !") //默认为window调用