這是在for
循環體中獲取塊範圍的最短可能方式嗎?在JavaScript中編寫塊作用域的最簡單方法是什麼?
x = {};
for (i of ['a', 'b']) {
(function(i) {
x[i] = function() { this.v = i; }
})(i);
}
或者是否有任何我無法找到的語法糖?
說明:
With塊範圍創建的對象具有不同的值。
new x.a
⟹x.(anonymous function) {v: "a"}
new x.b
⟹x.(anonymous function) {v: "b"}
沒有塊範圍
y = {};
for (i of ['a', 'b']) {
y[i] = function() { this.v = i; }
}
創建的對象將具有相同的值。
new y.a
⟹y.(anonymous function) {v: "b"}
new y.b
⟹y.(anonymous function) {v: "b"}
取決於不管你是願意使用ES6或不... –