首页 > 解决方案 > JavaScript 获取传入参数的函数实例

问题描述

假设我有以下代码。

function myFunc(item) {
    console.log(item);
}

function action() {
    return myFunc("Hello World");
}

const myUncalledFunction = action;
myUncalledFunction(); // will console.log "Hello World"

有没有办法让这段代码更干净?我已经调查过了.apply(),但看起来它也立即调用了该函数。

我想要这样做的原因是Chai 对 throw 的期望要求您传入一个未调用的函数。但是我要测试的函数需要传入参数。所以目前我只是创建了一个包装函数,它返回传入参数的函数。

我觉得必须有一种更好的方法来实现这一点,对于看到它的人来说更清洁、更简单。

标签: javascript

解决方案


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


推荐阅读