var test = function(a, b) { return a + b; };
setTimeout(test(2, 3), 3000);
它显示了一些类型错误
答案 0 :(得分:1)
至少有两种方法可以实现这一目标。
第一个函数只是在作为回调传递给test
的新匿名函数内部触发setTimout
函数。
第二个使用.bind
部分应用test
功能。
var test = function(a, b) {
console.log(a + b);
return a + b;
};
setTimeout(() => {
test(2, 3);
}, 3000);
setTimeout(test.bind(null, 2, 3), 3000);

如果你不像我一样喜欢null
的第一个(在这种情况下毫无意义)参数.bind
,那么你可以使用一些为你提供部分应用功能的库或者你可以编写自己的函数来执行部分应用程序。
const partial = (fn, ...firstArgs) => (...secondArgs) =>
fn(...firstArgs, ...secondArgs);
var test = function(a, b) {
console.log(a + b);
return a + b;
};
setTimeout(partial(test, 2, 3), 3000);

答案 1 :(得分:0)
这是在setTimeout
中调用外部函数的正确方法let approval_count = data.length;