一个更好的内联javascript函数?

时间:2010-06-17 13:56:57

标签: javascript

有没有更好的方法来编写此代码?我试过function(){}();但我得到一个错误所以我不得不使用DUMMY作为占位符var。该功能应该在警报b之前运行。什么是更好的写作方式?

var DUMMY = function(){
    var names = "i dont want to be seen";
    alert('A');
}; DUMMY();

alert('B');

3 个答案:

答案 0 :(得分:4)

我实际上使用你说的语法一直不起作用。问题是,您需要存储返回值,或使其成为表达式。所以:

var foo = function() { return false; }();

(function() { return false; }());

请注意Pointy对此问题的回答。表达式是整个函数(包括调用()),而不仅仅是函数声明。无论哪种方式都会做同样的事情。使用你觉得更具可读性的东西(我个人更喜欢这种语法,但是对每一种语言都更好)......

答案 1 :(得分:3)

您可以使用括号使其看起来像表达式:

(function() { alert("hi"); })();

我最近看到了这个(在TXJS会议上):

!function() { alert("hi"); }();

领先的“!”服务于同一目的:解析器看到一个表达式而不是函数定义语句。

答案 2 :(得分:0)

目前最好的是

(()=>{})()

甚至

!()=>{}