gpt4 book ai didi

javascript - 为什么 'class' 必须是 JavaScript 中的保留关键字?

转载 作者:行者123 更新时间:2023-11-30 14:24:45 25 4
gpt4 key购买 nike

几年前已经有人问过一个非常相似的问题 - why is class a reserved word in JavaScript? .答案是,这样您就可以添加我们现在拥有的 class 关键字。

但我想进一步探讨这个问题。为什么使用 class 关键字可以禁止使用 class 作为标识符? JS语法中有什么会使它变得模棱两可的吗?还是说 JS 可以用某种解析器来解析?我不认为这样的事情是不可能的(虽然当然很傻):

class class {
// ...
}

let x = new class();

请不要回答“因为规范是这样说的”或“根据定义禁止关键字作为标识符”。为什么规范必须是这样的?或者这是一个武断的或审美的决定?

这个问题不完全是无聊的好奇。 class 是一个禁止的标识符这一事实出现在 React 是否应该在 JSX 中使用 classclassName 的争论中,例如。

最佳答案

如果类可以像这样用作标识符:

 class class 
{ // a class is followed by the classes body
constructor() { /*...*/ }
}

const el = new class
{ // if class is not reserved, this is just a regular block
alert("test");
}

那么new class部分就不能和类表达式区分开来了:

 const el = new class
{
// block or class body?!
constructor() { /*???*/ }
}

关于javascript - 为什么 'class' 必须是 JavaScript 中的保留关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52127707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com