提问人:RobG 提问时间:3/13/2018 最后编辑:BergiRobG 更新时间:3/13/2018 访问量:1194
带有块范围变量的 Safari 错误?
Safari bug with block scoped variables?
问:
我正在测试块范围是否可以用来替换 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 也不会在块外定义。
答: 暂无答案
下一个:如何找到所有闭包?
评论
var getNext = function() { return i++; }