我正在测试是否可以使用块作用域来替换 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 是正确的而其他人都有错误?
附言。在严格模式下,getNext也没有在块之外定义。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)