javascript函数执行

时间:2017-06-16 14:47:08

标签: javascript ecmascript-6

我试图理解这个场景中的函数调用,如何将state解析为addView函数定义中的viewFunc(这些之间的钩子)并将defaultData作为函数参数?

var defaultData = {

  property: [
    {
      name: 'Adam',
      type: 'javascript'
    },
    {
      name: 'Tom',
      type: 'Typescript'
    }
  ]
};

function addView(viewFunc){
  console.log(" 1. Step I");
  viewFunc(defaultData);
  console.log(" 2. Step III ");
}

addView((state)=>{
  console.log(" 3. Step II & lenght of data set : "+state.property.length);
})

输出:

1. Step I
3. Step II & lenght of data set : 2
2. Step III 

1 个答案:

答案 0 :(得分:2)

在JavaScript中,函数可以作为参数传递给其他函数。这是您在调用addView时所做的事情:您创建一个匿名函数并将其传递给addView函数。

viewFunc变量现在包含对匿名函数的引用。与任何其他函数引用一样,您可以使用参数调用它。当您将对defaultData对象的引用传递给传递给addView函数的函数时,这就是您所做的。

作为参数传递给其他函数或从其他函数返回的函数引用称为first-class functions