谁知道这是什么意思?(function(){})();

福来哥 2011-10-16 08:18:54
看到一些JS类库和框架的定义写成这样的:
(function(){
//代码
})();

谁知道这种语法给解释一下。
...全文
134 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
峭沙 2011-10-17
  • 打赏
  • 举报
回复
(function(){
//代码
})();
这是个自执行匿名函数,即定义一个其名函数,并马上执行,最后面的()还可以传入参数。这样做主要是为了避免命名冲突
最后一个菜鸟 2011-10-17
  • 打赏
  • 举报
回复
匿名函数直接执行
豆虫 2011-10-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 feg545 的回复:]
看到一些JS类库和框架的定义写成这样的:
(function(){
//代码
})();

谁知道这种语法给解释一下。
[/Quote]
直接运行那个该函数 相当于
function aaa(){
//代码
};
aaa()
gmemai 2011-10-16
  • 打赏
  • 举报
回复
(function(){
//这里是块级作用域
})();
将函数声明包含在一对圆括号中,表示它实际上是一个函数表达式。紧随其后的另一对圆括号会立即调用这个函数。
为什么使用这个匿名函数呢?因为javascript中没有块级作用域,比如:
function fun(count){
for(var i=0;i<count;i++){
alert(i);
}
alert(i);//因为没有块级作用域,所以函数内部可以到处访问它
}
用块级作用域(通常称为私有作用域)的匿名函数的语法如下:
(function(){
//这里是快级作用域
})();
在这种情况下:
function fun(count){
(function(){
for(var i=0;i<count;i++){
alert(i);
}
})();
alert(i)//导致一个错误
}
gmemai 2011-10-16
  • 打赏
  • 举报
回复
(function(){
//代码
})();
这是javascript中优雅的方法,定义一个匿名函数:
function(){
//代码
}
然后立即执行
(function(){
//代码
})();
这个在javascript中主要是用来避免命名冲突的问题

87,996

社区成员

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

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