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.
答案 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
不再需要这个技巧了。