首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >_.delay函数缺少什么?

_.delay函数缺少什么?
EN

Stack Overflow用户
提问于 2015-12-09 23:18:25
回答 1查看 523关注 0票数 0

这是一个我知道很简单的问题,但我还是被困住了。如果你能帮我找出我的代码中遗漏了什么,我会很感激的。我需要通过两个测试,1)应该在特定的等待时间之后执行函数,2)应该已经成功地传递了函数参数。下面的说明和我的代码一样。这里的问题是,代码通过了第一个测试,但没有通过第二个测试。

指令:

“将一个函数延迟给定的毫秒数,然后用所提供的参数调用它。原始函数的参数在等待参数之后传递。例如,_.delay(someFunction,500,'a','b')将在500 of后调用someFunction('a','b')

我的代码:

代码语言:javascript
运行
复制
_.delay = function(func, wait) {
    return setTimeout(function(){
        return func.call(this, arguments);
    }, wait);
};
EN

回答 1

Stack Overflow用户

发布于 2015-12-09 23:42:50

正如你所说:

原始函数的参数在等待参数之后传递。例如,_.delay(someFunction,500,'a','b')将在500 For之后调用someFunction('a','b')

你要做的不是someFunction('a','b'),而是someFunction(someFunction, wait,'a','b')

因此,您需要做的是接受所有参数,但前两个参数除外,这可以通过执行var args = Array.prototype.slice.call(arguments,2)完成。

而且,由于要传递数组,所以需要使用apply而不是callapply

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

代码语言:javascript
运行
复制
_.delay = function(func, wait) {
    var args = Array.prototype.slice.call(arguments,2);
    return setTimeout(function(){
        return func.apply(this, args);
    }, wait);
};

你可以随时看看下面记分表的注释源

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34190876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档