【问题标题】:Extending javascript with keywords使用关键字扩展 javascript
【发布时间】:2010-12-03 03:08:57
【问题描述】:

我在这方面的谷歌搜索不成功,所以这是一个问题:

我想知道是否可以添加我自己的关键字来扩展给定框架中的 JavaScript 语言。

例如

Object1 extends Object2

在代码中会导致执行这个方法

inherit(Object1, Object2)

inherit 是一个负责复制原型、添加父级构造函数等的函数。

这可行吗?如果是这样,如何?如果没有,还有其他好的方法吗?

谢谢。

【问题讨论】:

    标签: javascript language-features feasibility


    【解决方案1】:

    您不能在语言中添加关键字,但一切都是对象,一切都可以通过原型进行扩展。

    我通常不会链接到 crockford,但他实际上有 quite a decent coverage of this ,这将为您提供 foo.inherits(bar); 形式的语法,这与人们希望的一样好。这是很常见的模式。

    【讨论】:

    • 你为什么不通常链接到克罗克福德?
    • 因为我不同意他对我心爱的 javascript 所说的很多话,并且我认为他的观点经常被重复而没有自我考虑。
    • @annakata 百万倍。很高兴我并不孤单。
    【解决方案2】:

    已经为此目的开发了几个 JavaScript 宏系统,包括 sweet.js。使用Sweet.js宏系统,您可以将一个关键字替换为另一个关键字(例如,将function关键字替换为def关键字。)但是,要运行sweet.js脚本,您必须先编译它们使用 sweet.js 编译器到 JavaScript。

    【讨论】:

      【解决方案3】:

      这样做很容易:

      window.inherit = function(...params){your code here}
      

      你可以调用窗口的方法而不需要调用窗口对象,所以你可以像inherit(arr1, arr2)一样调用

      【讨论】:

        【解决方案4】:

        不可能向 JavaScript 添加新关键字,不。不过,您可以创建自己的漂亮界面来创建类,或许可以从已经存在的无数库、框架和工具包中汲取灵感!

        【讨论】:

        • 实际上可以使用 sweet.js 为 JavaScript 创建关键字。在此页面上查看我的答案。 :)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-29
        • 1970-01-01
        • 2019-06-22
        • 2012-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多