使用块范围变量的Safari bug?

时间:2018-03-13 02:26:38

标签: javascript scope safari closures let

我正在测试是否可以使用块范围来替换IIFE以创建"私有"变量通过闭包。在Safari 11.0.3(11604.5.6.1.1)中进行测试之前一直很顺利,它支持块范围,但是存在块和闭包的错误,例如:



{
  let i = 0;
  function getNext() {
    return i++;
  }
}
// Chrome and Firefox
console.log(getNext()); // 0
console.log(getNext()); // 1
// Safari
console.log(getNext()); // ReferenceError: Can't find variable: i




除了继续使用IIFE之外还有其他工作吗?或者Safari是否正确,其他人都有错误?

PS。在严格模式下, getNext 也不在块外定义。

0 个答案:

没有答案