gpt4 book ai didi

javascript - 将绑定(bind)应用与数组参数一起使用时参数丢失

转载 作者:行者123 更新时间:2023-11-29 10:08:42 25 4
gpt4 key购买 nike

我用了this answer here使用以下代码通过传递数组参数来构造一个新的类实例:

new ( Cls.bind.apply( Cls, arguments ) )();

但我的论点之一是一个数组,并且在构造过程中值会丢失

您可以查看演示此 in this CodePen 的示例

在示例中,我传递了第三个参数 properties:

var properties = [
{ name: "first", value: "1" },
{ name: "second", value: "2" },
{ name: "third", value: "3" }
];

但是结果中的属性是undefined

显然这里出了点问题,但是是什么以及为什么?

最佳答案

您的代码几乎是正确的,但您需要向您的 factory() 传递一个额外的参数:工厂(未定义、名称、描述、属性)

这在您在问题中链接到的 SO 答案中突出显示:

The anything parameter doesn't matter much, since the new keyword resets f's context. However, it is required for syntactical reasons. Now, for the bind call: We need to pass a variable number of arguments, so this does the trick: var f = Cls.bind.apply(Cls, [anything, arg1, arg2, ...]); result = new f();

关于javascript - 将绑定(bind)应用与数组参数一起使用时参数丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37938990/

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