用关键字扩展javascript

用关键字扩展javascript,javascript,language-features,feasibility,Javascript,Language Features,Feasibility,我在谷歌上的搜索没有成功,所以问题是: 我想知道是否有可能在给定的框架中添加我自己的关键字来扩展JavaScript语言 比如说 Object1 extends Object2 在代码中,将导致执行此方法 inherit(Object1, Object2) 其中inherit是一个函数,负责复制原型、添加父级构造函数等 这可行吗?如果是,怎么做?如果没有,还有其他好的方法吗 谢谢。不可能在JavaScript中添加新的关键字。不过,你可以创建自己漂亮的界面来创建类,也许可以从已经存在的无数库

我在谷歌上的搜索没有成功,所以问题是:

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

比如说

Object1 extends Object2
在代码中,将导致执行此方法

inherit(Object1, Object2)
其中inherit是一个函数,负责复制原型、添加父级构造函数等

这可行吗?如果是,怎么做?如果没有,还有其他好的方法吗


谢谢。

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

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


我通常不会链接到crockford,但实际上他已经链接到了,这将为您提供
foo.inherits(bar)形式的语法这大概是人们所希望的。这是一种非常常见的模式。

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

这样做很容易:

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

您可以调用window的方法,而无需重新调用window对象,因此您可以像继承(arr1,arr2)

那样调用,为什么您通常不链接到crockford?因为我不同意他对我钟爱的javascript所说的很多话,我认为他的观点经常被重复而没有自我考虑。@annakata百万次。很高兴我不是唯一一个这么认为的人。实际上,使用sweet.js为JavaScript创建关键字是可能的。见本页我的答案。:)