阻止ES6中的作用域

时间:2014-12-14 16:43:35

标签: javascript ecmascript-6

let关键字是否会引入IIFE的替代方案以进行范围界定?

ES6中有以下有效语法吗?我打算用括号创建一个匿名块来限定私有变量myPrivateVariable

let foo;

{
  let myPrivateVariable = 'x';

  foo = function(bar) {
    return myPrivateVariable + bar;
  };
}

//foo is now a function with access to a 'private' variable.

1 个答案:

答案 0 :(得分:2)

是的,您的代码运行得很好并且符合预期:

"use strict";

let foo;

{
    let myPrivateVariable = 'x';

    foo = function(bar) {
        return myPrivateVariable + bar;
    };
}

console.log(foo('y')); // xy
console.log(myPrivateVariable); // error

使用--harmony标志对节点v0.11.12进行测试。

IIFE的重点是模拟块范围,所以,是的,let不再需要这个技巧了。