让我从一个具体的例子开始,我正在尝试做什么.
我在表单中有一系列年,月,日,小时,分钟,秒和毫秒组件[ 2008, 10, 8, 00, 16, 34, 254 ].我想使用以下标准构造函数实例化Date对象:
new Date(year, month, date [, hour, minute, second, millisecond ])
Run Code Online (Sandbox Code Playgroud)
如何将我的数组传递给此构造函数以获取新的Date实例?[ 更新:我的问题实际上超出了这个具体的例子.我想要内置JavaScript类的一般解决方案,如Date,Array,RegExp等,其构造函数超出我的范围.]
我正在尝试做类似以下的事情:
var comps = [ 2008, 10, 8, 00, 16, 34, 254 ];
var d = Date.prototype.constructor.apply(this, comps);
Run Code Online (Sandbox Code Playgroud)
我可能new在某处需要一个" ".上面只是返回当前时间,好像我已经调用了" (new Date()).toString()".我也承认我可能完全与上述方向错误:)
注意:请不要eval(),也不要逐个访问数组项.我很确定我应该可以按原样使用数组.
由于还没有人能够提出一个有效的答案,我已经做了更多的游戏.这是一个新发现.
我可以用自己的班级做到这一点:
function Foo(a, b) {
this.a = a;
this.b = b;
this.toString = function () {
return this.a + this.b;
};
}
var …Run Code Online (Sandbox Code Playgroud) 鉴于:
function A(name) {
this.name = name;
}
Run Code Online (Sandbox Code Playgroud)
是:
var a1 = new A("A1");
Run Code Online (Sandbox Code Playgroud)
完全等同于:
var a1 = {};
A.call(a1, "A1");
a1.__proto__ = A.prototype;
Run Code Online (Sandbox Code Playgroud)
?
谢谢
我使用一些JavaScript库来绘制图表.它需要将带坐标的数组传递给图表初始值设定项.但是图表初始化函数的签名看起来像新函数([arr1],[arr2],[arr3]),但我不知道我将传入多少数组,但不可能以另一种方式初始化它.怎么可能解决这个问题?谢谢.
UPD:调用的函数是构造函数,因此使用apply无法正常工作.问题是如何传递数据,而不是如何获取传递数据的计数