这种js表示什么意思?

williamxiao 2010-10-27 04:19:02
(function(){
//do something
})();

如题.

没见过这样写的(function(){})(); ???
...全文
75 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
williamxiao 2010-10-27
  • 打赏
  • 举报
回复
明白了,为了解决变量作用域的问题.

谢谢各位!
Crazywa 2010-10-27
  • 打赏
  • 举报
回复
<script>
var abc = "谁都可以用";
(function(){
var abc = '我就是不让别人用';
alert(abc);
})()
alert(abc);
</script>
BooJS 2010-10-27
  • 打赏
  • 举报
回复
主要是为了防止变量/函数名冲突,污染,造成语法错误。
Mr-Jee 2010-10-27
  • 打赏
  • 举报
回复
你直接写会造成全局变量===问题~
williamxiao 2010-10-27
  • 打赏
  • 举报
回复
试了一下,确实是这样的.

那为什么不直接这样写呢:
<script>
//do something
</script>

而要写成这样:
<script>
(function(){//do something})();
</script>


一:
<script>
//do something
</script>

二:
<script>
(function(){//do something})();
</script>

这两者有什么差别吗?
IT民工007 2010-10-27
  • 打赏
  • 举报
回复
匿名函数,就是这样写的话可以不给方法定义名称 直接执行
williamxiao 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kongxh1218 的回复:]

定义完了直接执行
等于下面这样写
JScript code

function a()
{
//do something
}
a();
[/Quote]

还是没明白?

你是说:
(function(){//do something})();


function a()
{
//do something
}

a();

效果一样?对吗?
kongxh1218 2010-10-27
  • 打赏
  • 举报
回复
定义完了直接执行
等于下面这样写

function a()
{
//do something
}
a();

87,915

社区成员

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

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