我正在使用 JavaScript 处理动画,我有一堆函数可以调用以将内容添加到动画队列中。基本上,所有这些函数看起来像这样:
function foo(arg1, arg2) {
_eventQueue.push(function() {
// actual logic
}
}
不过,我现在想知道是否可以稍微减少这个样板文件,这样我就不需要在每个函数体中多次使用额外的“_eventQueue”行。例如,是否有可能制作一个辅助函数,该函数将任意函数作为参数并返回一个新函数,该函数被扩充后自动添加到事件队列中?唯一的问题是我需要找到一种方法来保持在此过程中对函数原始参数的访问,这很……复杂。
最佳答案
您正在寻找 arguments
标识符,它给出了一个类似数组的对象,其中包含传递给当前函数的参数。
例如:
function createEnqueuer(func) {
return function() {
var outerArgs = arguments;
_eventQueue.push(function() {
return func.apply(window, outerArgs);
});
};
}
关于javascript - 减少将函数添加到函数队列的样板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2693848/