为了账号安全,请及时绑定邮箱和手机立即绑定

JS中(function(){xxx})(); 这种写法是什么意思?

JS中(function(){xxx})(); 这种写法是什么意思?

千巷猫影 2019-04-07 09:38:07
经常看到别人的JS脚本中有这样的写法:(function(){functiona(){alert("a");}})();这里的(function(){xxx})();是什么意思,为什么这么写,有什么好处?
查看完整描述

2 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

自执行匿名函数:常见格式:(function(){/*code*/})();解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数。作用:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许(变量前加上window,这样该函数或变量就成为全局)。各JavaScript库的代码也基本是这种组织形式。总结一下,执行函数的作用主要为匿名和自动执行,代码在被解释时就已经在运行了。其他写法(function(){/*code*/}());
!function(){/*code*/}();
~function(){/*code*/}();
-function(){/*code*/}();
+function(){/*code*/}();推荐阅读:立即调用的函数表达式
                            
查看完整回答
反对 回复 2019-04-07
?
Qyouu

TA贡献1786条经验 获得超11个赞

使用括号包裹定义函数体,解析器将会以函数表达式的方式去调用定义函数。请看我回答的另外一个问题:javascript里function之前加上感叹号'!'会怎么样...
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 392 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信