您的位置:首页 > Web前端 > JavaScript

js匿名函数和闭包的学习

2012-10-16 11:36 375 查看
匿名函数的写法总结有三种:

//函数字面量:首先声明一个函数对象,然后执行它。
(function(){
alert(1);
})();
//优先表达式:由于Javascript执行表达式是从圆括号里面到外面,所以可以用圆括号强制执行声明的函数。
(function(){
alert(2);
}());
//Void操作符:用void操作符去执行一个没有用圆括号包围的一个单独操作数。
voidfunction(){
alert(3);
}();


<inputtype="text"id="txtUser"name="txtUser"value="ok"/>
<ahref="javascript:tests();">调用匿名函数</a>


functiontests(){
vartemps=document.getElementById("txtUser");
alert(temps);
//匿名函数,调用方法,把上面的txtUser的文本框对象,用匿名函数去执行。这样控制了把它定义成全局变量。
(function(temps){
alert(temps.value);
})(temps);
}


下面做个例子,通过闭包、执行匿名函数,返回一个对象。

//执行一个匿名函数,返回一个对象,把对象赋值给Test。
varTest=(function(cTest){
vara=1;//在这里定义的变量,比如a、b、c、d,在整个Test下都可以访问到
varb=2;
varc=cTest;
vard;
return{
getA:function(){
returna;
},
getB:function(){
returnb;
},
getC:function(){
returnc;
}
}
})(3);
functiontestss(){
alert(Test.a);//不能得到a的值:是个undefined
alert(Test.c);//不能得到c的值:是个undefined
alert(Test.getA());//结果得到a的值:1
alert(Test.getB());//结果得到b的值:2
alert(Test.getC());//结果得到c的值:3
}
<ahref="javascript:testss();">闭包</a>

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: