【问题标题】:java keywords in javascriptjavascript中的java关键字
【发布时间】:2011-05-09 16:33:20
【问题描述】:

根据本页 http://www.quackit.com/javascript/javascript_reserved_words.cfm javascript有一些来自java的关键字,保留。我还注意到我的编辑器中的突出显示。这是未来的证明吗?他们是否打算在 javascript 中实现更多 OOP 风格的运算符?

我很想将接口、抽象类和类似的东西引入 js,但是保留这些词是否意味着什么?

【问题讨论】:

    标签: java javascript oop keyword


    【解决方案1】:

    来自ECMA-262 spec,§7.6.1.2(未来保留字):

    并且,根据 §2(一致性):

    允许符合 ECMAScript 的实现来支持本规范中未描述的程序和正则表达式语法。特别是,允许​​ ECMAScript 的一致实现支持使用本规范 7.6.1.2 中列出的“未来保留字”的程序语法。

    【讨论】:

      【解决方案2】:

      保留这些词仅用于为原作者 (Brendan Eich) 提供构建关键字的起点。

      此外,还设计了 JavaScript 使用 Java 的语法和标准 图书馆记。特别是,所有 Java 关键字被保留在 原始的 JavaScript,JavaScript 的 标准库遵循 Java 的命名 约定,以及 JavaScript 的数学和 日期对象是based on classes from Java 1.0

      “JS 必须“看起来像 Java”,只是不那么重要,成为 Java 的笨弟弟或男孩人质的搭档。另外,我必须在十天内完成,否则会发生比 JS 更糟糕的事情“-Brendan Eich

      目前没有将特定 Java 功能集成到 Javascript 中的计划。 current roadmap 建议使用以下功能:

      • 一个模块系统
      • 可选类型注释和静态类型,可能使用结构类型系统
      • 生成器和迭代器
      • 解构赋值
      • 代数数据类型

      【讨论】:

      • “我必须在十天内完成,否则会发生比 JS 更糟糕的事情”——这是我见过的对 JavaScript 设计原则的最佳解释。
      【解决方案3】:

      不,它们不保证任何东西,它们最初是为了“以防万一”而保留的,从那时起就一直使用这种语言。它们可能会或可能不会被使用,但大多数不会在不久的将来使用。

      【讨论】:

        【解决方案4】:

        @Andy 和 @OriginalSyn 已经回答了你的问题,我只想回答这个问题:

        我很想将接口、抽象类和类似的东西引入 js,但是保留这些词是否意味着什么?

        这些结构不太可能出现在 JavaScript 中。 JS 遵循prototype-based OOP 模型,它不使用类之类的东西。这个模型比经典的基于类的模型有一些优势,你必须喜欢它或者停止使用 JS,因为这种语言没有真正的替代品。 ;)

        【讨论】:

        • 我喜欢基于原型的模型,但我认为接口的想法是可以实现的。在这种情况下,不是针对类,而是针对每个对象。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-16
        • 2017-05-20
        • 2014-04-10
        • 2020-11-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多