7

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

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

例如

Object1 extends Object2

在代码中将导致执行此方法

inherit(Object1, Object2)

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

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

谢谢。

4

4 回答 4

6

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

我通常不会链接到 crockford,但他实际上对此有相当不错的报道foo.inherits(bar);,这将为您提供与人们希望的一样好的形式语法。这是很常见的模式。

于 2009-10-01T20:08:47.823 回答
5

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

于 2013-01-05T01:51:45.780 回答
1

这样做很容易:

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

您可以调用窗口的方法,而无需求助于窗口对象,因此您可以像这样调用inherit(arr1, arr2)

于 2020-08-22T12:01:26.420 回答
0

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

于 2009-10-01T20:08:10.087 回答