gpt4 book ai didi

javascript - 在 JavaScript 中使用 call() 或 apply() 返回值

转载 作者:数据小太阳 更新时间:2023-10-29 05:48:20 24 4
gpt4 key购买 nike

有没有办法在调用 call() 或 apply() 时获取函数的返回值?

我的场景:

我有一个函数可以与 apply() 函数配合使用。在对象构造函数上:

var someObject = new SomeObject({NameFunction: "MakeNames"});

在对象方法的循环中:

var name = "";
for (var i = 0; i < data.length; i++) {
name = window[this.NameFunction].apply(null, [data[i]]);
}

MakeNames 函数:

function MakeNames(data)
{
return data.FirstName + " " + data.LastName;
}

那个 var name 保持为空,因为 apply 没有从函数返回任何值。请注意,我确信该函数已被调用并且参数已成功传递。请不要告诉我直接使用 name = MakeNames(data[i]);,因为很明显我不想要这个解决方案。

无论是 applycall 还是任何 JavaScript 都必须使它工作,如果工作的话。

我怎样才能做到这一点?

最佳答案

结果:

window[this.NameFunction.toString()].apply(null, [data[i]])

与以下内容完全相同:

MakeNames(data[i])

因为唯一的区别是 MakeNames 函数中 this 的值,并且因为没有使用 this,所以它不能有所作为。 apply 的使用不会改变函数是否返回值,或者值是什么。

无论您遇到什么问题,都不会出现在发布的代码中。

关于javascript - 在 JavaScript 中使用 call() 或 apply() 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16692436/

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