如何将数据从一个函数传递给另一个函数,该函数是第一个函数的参数

时间:2017-05-21 13:37:13

标签: javascript node.js

在下面的示例中,使用getData();时,是否可以在新函数中访问其对象图中包含的数据 - 即。 useData(); - 这是getData();的参数?

const getData = (useData) => {

  const myData = {
    0: { title: 'Hello' },
    1: { title: 'World!' }
  };

  Object.keys(myData).map((item) => {
    useData();
  });
}

getData(console.log(
  /**
   * Somehow access data represented by `myData` and `item`
   * in above object map along the lines of `myData[item].title` 
  */
));

2 个答案:

答案 0 :(得分:1)

你想实现这样的目标吗?

您可以使用useData函数中的一些参数调用map。在这种情况下,您不能将console.log之类的函数称为getData函数的参数。

const getData = useData => {
    const myData = {
        0: { title: "Hello" },
        1: { title: "World!" },
    };

    Object.keys(myData).map(item => {
        useData(myData[item]);
    });
};
getData(console.log);

答案 1 :(得分:0)

是的,这是默认行为。但是您需要传递function console.log )而不是函数调用( console.log())并稍后调用它。

const getData = (useData) => {

  const myData = {
    0: { title: 'Hello' },
    1: { title: 'World!' }
  };

  Object.keys(myData).map((item) => {
    useData.apply(console, [item]);
    useData.apply(console, [ myData[item].title ]);
    //or useData(myData[item].title)
  });
}

getData(console.log);

getData(console.log('something'));

与:

相同
let x = console.log('something');
getData(x);