代码之家  ›  专栏  ›  技术社区  ›  Charlie Fish

传入参数的JavaScript Get函数实例

  •  0
  • Charlie Fish  · 技术社区  · 7 年前

    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 回复  |  直到 7 年前
        1
  •  1
  •   CertainPerformance    7 年前

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