假设我有以下代码。
function myFunc(item) {
console.log(item);
}
function action() {
return myFunc("Hello World");
}
const myUncalledFunction = action;
myUncalledFunction(); // will console.log "Hello World"
有没有办法让这段代码更简洁?我调查过.apply()
但看起来它也立即调用了该函数。
我想要这样做的原因是Chai's expect for throw要求您传入一个未调用的函数。但我想要测试的函数需要传入参数。所以目前我刚刚创建了一个包装函数,它返回带有传入参数的函数。
我觉得必须有一种更好的方法来实现这一目标,对于查看它的人来说更干净、更简单。
最佳答案
使用.bind
将参数(以及调用上下文,如果需要)绑定(bind)到函数,这会在进程中生成一个新的可调用函数。在这里,您可以将其视为基本上允许您一次传入参数,然后稍后使用这些参数调用所需的函数:
function myFunc(item) {
console.log(item);
}
const myUncalledFunction = myFunc.bind(undefined, 'Hello World');
myUncalledFunction();
或者您可能只使用简洁的箭头函数
function myFunc(item) {
console.log(item);
}
const myUncalledFunction = () => myFunc('Hello World');
myUncalledFunction();
关于JavaScript 获取传入参数的函数实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52031544/