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

标签 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要求您传入一个未调用的函数。但我想要测试的函数需要传入参数。所以目前我刚刚创建了一个包装函数,它返回带有传入参数的函数。

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

最佳答案

使用.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/

相关文章:

javascript - 将数据添加到同一行的 2 列中,数据来自 Javascript Websocket

javascript - 带超时的循环函数

javascript - 如何对数组中的元素有范围 - Jquery?

javascript - 在javascript中如何rowNum获取?

javascript - backbone.js - 模型/ View 如何链接到 DOM 元素?

javascript - 如何获取数组中元素的所有可能组合,包括顺序和长度

javascript - 更新...需要一个关于客户端如何从服务器端获取值而无需回发的 Ajax 示例

javascript - 支持 jquery 弹性插件吗?

javascript - 在 javascript 中注册事件监听器的最有效方法是什么

javascript - 有没有可以安全地解释混淆的 javascript 字符串的 python 库?