传递参数在javascript中运行

问题描述 投票:-1回答:2

我有一个功能(案例)如下,

let fn = (() => {
  let ab = {}; 
  let register = () => {
    console.log("hello" + ab[x])
  };
  return (x,y) => {
    ab[x] = y;
    return register();
  };
})();

这个功能只在我打电话时才有效,

let x = 'key';
let y = 'value';
fn(x,y);

有没有机会直接打电话

fn('key', 'value');

我需要做什么改变才能直接打电话

javascript typescript ecmascript-6 ecmascript-2017 ecma
2个回答
1
投票

问题是你的register功能不知道x。您需要从之前的函数中传递它:

let fn = (() => {
  let ab = {}; 
  let register = (x) => {
    console.log("hello" + ab[x])
  };
  return (x,y) => {
    ab[x] = y;
    return register(x);
  };
})();

fn("key", "value");

0
投票

我相信这是因为你没有在函数中定义参数。

   let fn = ((x,y) => {
  let ab = {}; 
  let register = () => {
    console.log("hello"+ab[x])};
    return (x,y) => {
      ab[x]=y;
      return register();
    };
})();
© www.soinside.com 2019 - 2024. All rights reserved.