【发布时间】:2020-12-01 09:15:42
【问题描述】:
我正在使用代码块来模拟 C 语言中的静态函数变量。这是基本设置:
{
let bob = 5;
function b() {
console.log(bob++);
}
}
现在在 chrome 中编译得很好,没有任何抱怨。然而,在 Safari 中,我得到了一个
SyntaxError: Unexpected identifier 'bob'. Expected a ':' following the property name 'let'.
我不知道是什么导致了这种差异,因为 Chrome 和 Safari 都处理 ECMAScript 6。
【问题讨论】:
-
如果您发布实际代码而不是摘要会有所帮助。
-
因为你已经将它包含在一个对象中,所有这些现在都是属性,所以试试:
{ bob: 5, b: () => { console.log(bob++) } -
@DominikMatis - 不,独立块不会创建对象。如果上面的代码如上所示,它会创建一个内部包含代码的独立块。
-
@Pointy 这是失败的实际(简化)代码。自己试试吧。
-
是的,Safari 的错误
标签: javascript google-chrome safari