我在这方面的谷歌搜索不成功,所以这是一个问题:
我想知道是否可以添加我自己的关键字来扩展给定框架中的 JavaScript 语言。
例如
Object1 extends Object2
在代码中将导致执行此方法
inherit(Object1, Object2)
其中,inherit 是一个负责复制原型、添加父级构造函数等的函数。
这是可行的吗?如果是这样,如何?如果没有,还有其他好的方法吗?
谢谢。
我在这方面的谷歌搜索不成功,所以这是一个问题:
我想知道是否可以添加我自己的关键字来扩展给定框架中的 JavaScript 语言。
例如
Object1 extends Object2
在代码中将导致执行此方法
inherit(Object1, Object2)
其中,inherit 是一个负责复制原型、添加父级构造函数等的函数。
这是可行的吗?如果是这样,如何?如果没有,还有其他好的方法吗?
谢谢。
您不能在语言中添加关键字,但一切都是对象,一切都可以通过原型进行扩展。
我通常不会链接到 crockford,但他实际上对此有相当不错的报道foo.inherits(bar);
,这将为您提供与人们希望的一样好的形式语法。这是很常见的模式。
为此目的开发了几个 JavaScript 宏系统,包括 sweet.js。使用Sweet.js宏系统,您可以将一个关键字替换为另一个关键字(例如,将function
关键字替换为一个def
关键字。)但是,要运行 sweet.js 脚本,您必须首先使用 sweet.js 将它们编译为 JavaScript。 js编译器。
这样做很容易:
window.inherit = function(...params){your code here}
您可以调用窗口的方法,而无需求助于窗口对象,因此您可以像这样调用inherit(arr1, arr2)
不可能向 JavaScript 添加新关键字,不。不过,您可以创建自己的漂亮界面来创建类,或许可以从已经存在的无数库、框架和工具包之一中汲取灵感!