javascript - 在Javascript中将数组应用于 "new"?

标签 javascript metaprogramming

我想写一个这样的函数:

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

applyNew不存在。有办法解决这个问题吗?

最佳答案

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

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/

相关文章:

javascript - 为什么 Coffeescript 认为阴影是个坏主意

c++ - 在依赖于类型的上下文中使用 constexpr

c++ - 仅使用静态多态性的异构容器

c++ - 在编译时为 C++ 中的成员函数添加别名

ruby - 你如何在父类中打开一个类而不影响 ruby​​ 中的其他子类实例

javascript 将字符串视为字符数组 - 如何更改它?

javascript - 理解 jQuery $.extend() 的正确用法

asp.net - jQuery 和 Colorbox 的问题。动态 href 未反射(reflect)第一次出现后的变化

javascript - 相当于 Array.from() 的 TypeScript

c++ - enable_if 和互斥方法