我需要在Array
类中添加一些原型,在本机 javascript 中我可以执行以下操作
var myArray = Array;
myArray.prototype.myMethod = function(){}
var testArray = new myArray();
testArray.contains();
但现在我需要通过节点 js 模块执行此操作并将其导出 myArray
为类,以便从中制作一些对象,我该怎么做?
我需要在Array
类中添加一些原型,在本机 javascript 中我可以执行以下操作
var myArray = Array;
myArray.prototype.myMethod = function(){}
var testArray = new myArray();
testArray.contains();
但现在我需要通过节点 js 模块执行此操作并将其导出 myArray
为类,以便从中制作一些对象,我该怎么做?
如果您直接从模块内添加到 Array 原型,则主范围内的 Array 可以访问它
要查看这一点,请将以下行放入foo.js
:
Array.prototype.foo = "bar";
然后启动repl并运行
$ node
> Array.prototype.foo
undefined // <-- Array normally doesn't have foo
> require('./foo')
{}
> Array.prototype.foo
'bar' // <-- note how it's defined now
> [].foo
'bar' // <-- as expected
您可以对其他基本对象执行相同的操作,例如Number