我发现自己,由于与此无关的原因,但涉及机器生成的代码,需要创建名称为Javascript保留字的变量。
例如,使用对象文字,如果它们是无效的标识符,则引用密钥:
var o = { validIdentifier: 1, "not a valid identifier": 2 };
是否有类似的技术适用于简单的变量引用?
在规范周围发现,显示使用作为一种机制,通过滥用Unicode转义来实现这一点:
f\u0075nction = 7;
然而,这似乎令人难以置信的可疑,并且显然正在迅速消失(虽然我最近的Chrome似乎仍然支持它)。是否有更现代的等价物?
答案 0 :(得分:0)
是否有更现代的等价物?
没有。保留字不能用作变量名。您可以使用看起来的名称,就像那些单词一样。
来自spec:
保留字是 IdentifierName ,不能用作标识符。
仅供参考,保留字可用作属性名称,即使没有引号:
var o = { function: 1 };
答案 1 :(得分:0)
变量名称不能成为保留字。
你总是可以做坏事:
window["function"] = 'foo';
console.log(window.function);
> foo
您仍然无法使用 bare 保留引用它,因为它已被保留。
它的机器生成代码意味着生成代码的任何内容都被破坏了。
答案 2 :(得分:0)
如果他们是对象键,您可以按照自己喜欢的方式调用它们(即使是保留名称),也不需要引用它们。
var o = { function: 'a' }
console.log(o.function) // a