(
function func()
{
//
}
)见过一些函数是这样声明的,外面被一对括号包起来,不知道这样写是什么意思,有什么意义?
function func()
{
//
}
)见过一些函数是这样声明的,外面被一对括号包起来,不知道这样写是什么意思,有什么意义?
解决方案 »
- 用getBoundingClientRect获取元素位置,拉动浏览器窗口怎么让它随之改变
- 求一特效,网页上在一张图片上实现鼠标在该图片上有十字线效果。
- document.write();提问
- 关于setTimeout的问题,为什么随便加一句alert("abc")就可以执行?
- 初来宝地,求解xmlhttp问题?
- 急!如何把JAVASCRIPT变量值付给普通的JAVA程序的变量呀
- 错在哪里呢?
- netscape下,模态窗口向主窗口传值?
- ASp.NET中,在客户端js代码中如何调用服务端的方法?
- 如何设置js文件编码为utf-8
- 高手帮忙写个JS验证表单!谢谢啊.
- 子类能不能继承基类的构造函数的属性?
(function(){})();//后面加括号表示执行这个函数,好处是可以避免大量全局变量的污染和变量冲突
var func2=function(…){…};
var func3=function func4(…){…};
var func5=new Function();
这些都是声明函数的正确语法
//给你下面这样的举例,会直接弹出alert结果:100
(function(arg){
alert(arg);
})(100);//如上等价于:
var f = function(arg){
alert(arg);
};
f(100);
意义何在?var f = function(arg){ alert(arg); }; f(100);这样写不是更好?
#9楼 得分:0回复于:2010-02-28 14:03:17
引用 8 楼 ymmc001 的回复: 引用 5 楼 amingo 的回复: 引用 3 楼 zhangshaolongjj 的回复:闭包,网上有很多例子 解释清楚JScript code//给你下面这样的举例,会直接弹出alert结果:100(function(arg){ alert(arg); })(100);//如上等价于:var f=function(arg){ alert(arg); }; f(100);
意义何在?var f = function(arg){ alert(arg); }; f(100);这样写不是更好?
(function(){})()
不一定就是闭包你说这么写有什么好处单从你写的这个例子var f=function(arg){ alert(arg); }; f(100);
和 (function(arg){alert(arg);})(100); 应该是看不出好处的吧如果有大量的变量 函数 和方法应该还是可以体现出好处的
如可以减少全局变量
多个(function(){})() 在里面还可以使用同名的变量 避免变量冲突
(function(){})()
不是要闭包 主要是为了直接执行了一个匿名函数 执行目的要问作者var f=function(){...}; f(); 这样的话 f这个函数 还是可以调用得到
这样写多了个f变量
就是这点区别
当然如果你要重复调用就肯定要这种了