一个function的写法问题 高手进

amingo 2010-02-28 01:38:00

function func()
{
//
}


见过一些函数是这样声明的,外面被一对括号包起来,不知道这样写是什么意思,有什么意义?
...全文
152 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
KK3K2005 2010-03-01
  • 打赏
  • 举报
回复

(function(){})()
不是要闭包 主要是为了直接执行了一个匿名函数 执行目的要问作者

var f=function(){...}; f();

这样的话 f这个函数 还是可以调用得到
cloudgamer 2010-03-01
  • 打赏
  • 举报
回复
var f = function(arg){ alert(arg); }; f(100);

这样写不是更好?


这样写多了个f变量
就是这点区别
当然如果你要重复调用就肯定要这种了
Alien 2010-02-28
  • 打赏
  • 举报
回复
引用 5 楼 amingo 的回复:
引用 3 楼 zhangshaolongjj 的回复:闭包,网上有很多例子

解释清楚

//给你下面这样的举例,会直接弹出alert结果:100
(function(arg){
alert(arg);
})(100);

//如上等价于:
var f = function(arg){
alert(arg);
};
f(100);
licip 2010-02-28
  • 打赏
  • 举报
回复
没错。这是一种闭包的用法。
licip 2010-02-28
  • 打赏
  • 举报
回复
没错。这是一种闭包的用法。
amingo 2010-02-28
  • 打赏
  • 举报
回复
引用 3 楼 zhangshaolongjj 的回复:
闭包,网上有很多例子


解释清楚
zhjie83 2010-02-28
  • 打赏
  • 举报
回复
就是实例化一个对象,个人认为是最简洁的实例化对象的方法。
madsion_java 2010-02-28
  • 打赏
  • 举报
回复
闭包,网上有很多例子
wtcsy 2010-02-28
  • 打赏
  • 举报
回复
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(){})() 在里面还可以使用同名的变量 避免变量冲突
amingo 2010-02-28
  • 打赏
  • 举报
回复
*


#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);

这样写不是更好?
zhyzdl 2010-02-28
  • 打赏
  • 举报
回复
不错.学习了... ...
SlaughtChen 2010-02-28
  • 打赏
  • 举报
回复
不错.学习了... ...
zhangshaolongjj 2010-02-28
  • 打赏
  • 举报
回复
闭包,网上有很多例子
lihan6415151528 2010-02-28
  • 打赏
  • 举报
回复
function func1(…){…}
var func2=function(…){…};
var func3=function func4(…){…};
var func5=new Function();


这些都是声明函数的正确语法
sohighthesky 2010-02-28
  • 打赏
  • 举报
回复
一般是没有名字的函数
(function(){

})();//后面加括号表示执行这个函数,好处是可以避免大量全局变量的污染和变量冲突
amingo 2010-02-28
  • 打赏
  • 举报
回复
引用 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);

这样写不是更好?

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧