Rob*_*obG 6 javascript safari closures scope 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: iRun Code Online (Sandbox Code Playgroud)
除了继续使用 IIFE 之外,还有其他解决方法吗?或者 Safari 是否正确而其他人都有错误?
附注。在严格模式下,getNext也没有在块外定义。
| 归档时间: |
|
| 查看次数: |
718 次 |
| 最近记录: |