有没有更好的方法来编写此代码?我试过function(){}();但我得到一个错误所以我不得不使用DUMMY作为占位符var。该功能应该在警报b之前运行。什么是更好的写作方式?
var DUMMY = function(){
var names = "i dont want to be seen";
alert('A');
}; DUMMY();
alert('B');
答案 0 :(得分:4)
我实际上使用你说的语法一直不起作用。问题是,您需要存储返回值,或使其成为表达式。所以:
var foo = function() { return false; }();
或
(function() { return false; }());
请注意Pointy对此问题的回答。表达式是整个函数(包括调用()
),而不仅仅是函数声明。无论哪种方式都会做同样的事情。使用你觉得更具可读性的东西(我个人更喜欢这种语法,但是对每一种语言都更好)......
答案 1 :(得分:3)
您可以使用括号使其看起来像表达式:
(function() { alert("hi"); })();
我最近看到了这个(在TXJS会议上):
!function() { alert("hi"); }();
领先的“!”服务于同一目的:解析器看到一个表达式而不是函数定义语句。
答案 2 :(得分:0)
目前最好的是
(()=>{})()
甚至
!()=>{}