我不明白以下作为Model对象一部分的javascript方法中的视图(“”)是什么:
addView: function(view) {
this.views.push(view);
view("");
}
view(object)方法没有在任何地方定义......
答案 0 :(得分:2)
view(object)方法没有在任何地方定义
view
引用的函数作为参数传递给addView
。这也称为回调。回调是一个函数(A),它被传递给另一个函数(B),并且应该由该函数(B)调用。
所以在某处,可能会有类似
的代码obj.addView(function(v) {
// using anonymous function expressions is a pretty common way to define
// callbacks
});
或
function someFunctionName(v) {
// any function will do, no matter how it is defined
}
obj.addView(someFunctionName);
函数是JavaScript中的第一类对象,可以像任何其他值一样传递。
答案 1 :(得分:1)
看起来它正在传递一个名为view的函数。然后它调用视图函数。 函数是JavaScript中的一等公民,可以作为参数传递给其他函数。
addView: function(view) {//view is a function itself that is passed into the current function.
this.views.push(view);
view("");
}
电话可能就像这样
someObj.addView(function(par1){alert("I am a function too")});
答案 2 :(得分:1)
假设你有函数view
,如果你调用view
函数而没有在view()
中传递参数,那么它会像undefined
一样返回,在这种情况下我们需要初始化函数view("")
function view(passedData){
alert (passedData);
}