gpt4 book ai didi

javascript - splat over JavaScript 对象(用 new )?

转载 作者:太空宇宙 更新时间:2023-11-04 02:29:25 25 4
gpt4 key购买 nike

如何在不使用 ECMA6 features 的情况下跨对象进行喷溅?

尝试

function can(arg0, arg1) {
return arg0 + arg1;
}

function foo(bar, haz) {
this.bar = bar;
this.haz = haz;
}

myArgs = [1,2];

使用 can 我可以这样做:

can.apply(this, myArgs);

尝试使用 foo 时:

new foo.apply(this, myArgs);

我收到此错误(因为我正在调用 new):

TypeError: function apply() { [native code] } is not a constructor

最佳答案

使用Object.create

function foo(bar, haz) {
this.bar = bar;
this.haz = haz;
}

x = Object.create(foo.prototype);
myArgs = [5,6];
foo.apply(x, myArgs);

console.log(x.bar);

关于javascript - splat over JavaScript 对象(用 new )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28132452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com