带参数传入的JavaScript获取函数实例

时间:2018-08-27 01:27:40

标签: javascript

说我有以下代码。

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,要求您传入一个未调用的函数。但是我要测试的函数需要传递参数。因此,当前我只创建了一个包装器函数,该函数返回传递了参数的函数。

我觉得必须有一种更好的方法来实现这一目标,这对于看着它的人​​来说更干净,更简单。

1 个答案:

答案 0 :(得分:1)

使用.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();