在没有任何东西之前编写闭包

时间:2013-06-24 09:14:09

标签: javascript closures

JavaScript中的含义以及何时应该使用它? (抱歉问题标题,想不到更好:))

{
   var something = 'test';
   // etc..
}

2 个答案:

答案 0 :(得分:8)

没有任何意义。 { }将各种陈述归为一类,仅此而已。它不会影响范围或创建闭包或其他任何东西。它通常像这样使用:

if (true)
    foo();  // one statement

if (true) { // one group of statements
    bar();
    baz();
}

如果没有if或类似的结构,它仍然会对语句进行分组,但影响不大。

有一个例外:Javascript“1.7”定义let,它在块范围中声明变量。即使用var声明的变量范围受function () { }声明的影响,let块通过简单{ }块声明的变量范围。目前尚未得到广泛支持。

答案 1 :(得分:3)

如果您想要的是变量的范围,那么在Javascript中这样做就是定义一个函数(闭包)并立即调用它。

(function () {
    var something = 'test';
})();
// something is out of scope here