相关疑难解决方法(0)

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

让我从一个具体的例子开始,我正在尝试做什么.

我在表单中有一系列年,月,日,小时,分钟,秒和毫秒组件[ 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)

javascript reflection

54
推荐指数
3
解决办法
2万
查看次数

这两种在JavaScript中构造对象的方法是否相同?

鉴于:

    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

5
推荐指数
1
解决办法
236
查看次数

将未知的参数计数传递给js构造函数

我使用一些JavaScript库来绘制图表.它需要将带坐标的数组传递给图表初始值设定项.但是图表初始化函数的签名看起来像新函数([arr1],[arr2],[arr3]),但我不知道我将传入多少数组,但不可能以另一种方式初始化它.怎么可能解决这个问题?谢谢.

UPD:调用的函数是构造函数,因此使用apply无法正常工作.问题是如何传递数据,而不是如何获取传递数据的计数

javascript parameters

1
推荐指数
1
解决办法
2904
查看次数

标签 统计

javascript ×3

parameters ×1

reflection ×1