通过调用 prototype.constructor.apply 来实例化一个 JavaScript 对象

11 浏览
0 Comments

通过调用 prototype.constructor.apply 来实例化一个 JavaScript 对象

让我以一个具体的例子开始说明我想要做的事情。

我有一个由年、月、日、小时、分钟、秒和毫秒组成的数组,形式如下:[ 2008, 10, 8, 00, 16, 34, 254 ]。我想要使用以下标准构造函数来实例化一个Date对象:

new Date(year, month, date [, hour, minute, second, millisecond ])

我该如何将我的数组传递给这个构造函数以获取一个新的Date实例?[ 更新:我的问题实际上超出了这个具体例子。我想要一个通用的解决方案,适用于内置的JavaScript类,如Date、Array、RegExp等,它们的构造函数超出了我的能力范围。]

我正尝试做类似以下的事情:

var comps = [ 2008, 10, 8, 00, 16, 34, 254 ];
var d = Date.prototype.constructor.apply(this, comps);

我可能需要在其中某个地方加上"new"。上述代码只返回当前时间,就好像我调用了"(new Date()).toString()"一样。我也承认我可能完全错了。

注意:请不要使用eval(),也不要逐个访问数组项。我相当确定我应该能够直接使用数组。

0