一个function的写法问题 高手进 (function func(){ //})见过一些函数是这样声明的,外面被一对括号包起来,不知道这样写是什么意思,有什么意义? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一般是没有名字的函数(function(){})();//后面加括号表示执行这个函数,好处是可以避免大量全局变量的污染和变量冲突 function func1(…){…} 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);这样写不是更好? http://www.cn-cuckoo.com/wordpress/wp-content/uploads/2007/08/JavaScriptClosures.html我是想来说下(function(){})()不一定就是闭包你说这么写有什么好处单从你写的这个例子var f=function(arg){ alert(arg); }; f(100); 和 (function(arg){alert(arg);})(100); 应该是看不出好处的吧如果有大量的变量 函数 和方法应该还是可以体现出好处的如可以减少全局变量多个(function(){})() 在里面还可以使用同名的变量 避免变量冲突 (function(){})()不是要闭包 主要是为了直接执行了一个匿名函数 执行目的要问作者var f=function(){...}; f(); 这样的话 f这个函数 还是可以调用得到 var f = function(arg){ alert(arg); }; f(100); 这样写不是更好?这样写多了个f变量就是这点区别当然如果你要重复调用就肯定要这种了 我想用js遍历到表格类的数据,为什么不起效 easyui validator 验证后,TEXTBOX 被清空了 EXT4 datefield 的问题 想请教做一个特殊的JS移动 三天了还是实现不了,急求 JSP表单上传进度条 Ext+JS 下拉类表框一个不见了 求一个2级菜单的做法 window.opener.changeLocation(); 在模式对话框中写树的问题 怎么把这个字符串中的&字符全部替换成*字符 高手帮忙写个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变量
就是这点区别
当然如果你要重复调用就肯定要这种了