gpt4 book ai didi

javascript - _.delay 函数缺少什么?

转载 作者:行者123 更新时间:2023-12-02 15:19:26 26 4
gpt4 key购买 nike

这是一个我知道很简单的问题,但我被困住了。如果您能帮助我找出我的代码中缺少的内容,我将不胜感激。我需要通过两个测试 1) 应该在特定的等待时间后执行函数,而 2) 应该成功传递函数参数。下面的说明是我的代码。我的问题是代码通过了第一个测试,但没有通过第二个测试。

说明:

"Delays a function for the given number of milliseconds, and then calls it with the arguments supplied. The arguments for the original function are passed after the wait parameter. For example _.delay(someFunction, 500, 'a', 'b') will call someFunction('a', 'b') after 500ms"

我的代码:

_.delay = function(func, wait) {
return setTimeout(function(){
return func.call(this, arguments);
}, wait);
};

最佳答案

正如你所说:

The arguments for the original function are passed after the wait parameter. For example _.delay(someFunction, 500, 'a', 'b') will call someFunction('a', 'b') after 500ms"

你所做的不是someFunction('a','b')但是someFunction(someFunction, wait,'a','b')

所以你需要做的是获取除前两个参数之外的所有参数,这可以通过 var args = Array.prototype.slice.call(arguments,2) 来完成

并且因为您要传递一个数组,所以您需要使用 apply而不是callRelated question about the difference between call and apply

所以你最终的代码将是这样的:

_.delay = function(func, wait) {
var args = Array.prototype.slice.call(arguments,2);
return setTimeout(function(){
return func.apply(this, args);
}, wait);
};

您可以随时查看the annotated source of underscorejs

关于javascript - _.delay 函数缺少什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34190876/

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