Javascript:调用lambda函数还是直接表达式之间的区别?

时间:2017-10-24 10:01:10

标签: javascript function lambda expression

我有时会看到像这样的JS结构:

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

这可能是什么原因?这与更简单的方式有什么不同:

var foo = some_expression;

我碰巧遇到了这样一个例子herewindow.requestAnimFrame = ...代码),但我在很多其他地方都看到了它。

我知道在lambda函数中包装东西的一个原因是保持变量是局部的,但这并不适用于这个特定的例子。

1 个答案:

答案 0 :(得分:1)

并非您的情况似乎有任何差异,但在ECMAScript 5之前,switch (error.constructor) { case NotAllowedError: return res.send(400); case NotFoundError: return res.send(404); default: return res.send(500); } public static void printRows(String id, String desc, int fee) { System.out.printf("\n| %s | %-20.20s| %,8d|", id, desc, fee); while(desc.length()>20){ desc=desc.substring(20); System.out.printf("\n| | %-20.20s| |", desc); } System.out.printf("\n---------------------------------------"); } 对象的属性并且是可写的,因此undefined将替换其值。这意味着,只要这行代码下面的任何程序试图检查这样的东西 -

window

一个人会得到错误的结果。

为了避免这种情况,使用了这样的编码模式 -

undefined = "123"

但是,这是ES5之前的版本。所以,它不再重要了