This question already has answers here:
Use of .apply() with 'new' operator. Is this possible?
                                
                                    (36个答案)
                                
                        
                6年前关闭。
            
        

我想写一个像这样的函数:

function myNew(constructor) {
    return constructor.applyNew(Array.prototype.slice.call(arguments, 1));
}


applyNew不存在。有没有解决的办法?

最佳答案

您首先必须创建一个从构造函数的原型继承的对象,然后将构造函数应用于该对象以对其进行初始化:

function applyNew(fn, args) {
    var obj;
    obj = Object.create(fn.prototype);
    fn.apply(obj, args);
    return obj;
}

关于javascript - 将数组应用于Javascript中的“new”? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21296675/

10-09 17:27