我试图理解这个场景中的函数调用,如何将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
答案 0 :(得分:2)
在JavaScript中,函数可以作为参数传递给其他函数。这是您在调用addView
时所做的事情:您创建一个匿名函数并将其传递给addView
函数。
viewFunc
变量现在包含对匿名函数的引用。与任何其他函数引用一样,您可以使用参数调用它。当您将对defaultData
对象的引用传递给传递给addView
函数的函数时,这就是您所做的。
作为参数传递给其他函数或从其他函数返回的函数引用称为first-class functions。