0

我不明白 view("") 在以下属于 Model 对象的 javascript 方法中的作用:

addView: function(view) {
            this.views.push(view);
            view("");
        }

view(object) 方法没有在任何地方定义...

4

3 回答 3

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 中的第一类对象,可以像任何其他值一样传递。

于 2013-11-13T06:10:57.573 回答
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")});
于 2013-11-13T06:11:44.737 回答
1

假设你有一个函数view,如果你在view没有传入参数的情况下调用函数 view(),那么它会返回undefined,在这种情况下,我们需要从函数中初始化传递的参数值view("")

function view(passedData){

   alert (passedData);
}
于 2013-11-13T06:19:37.520 回答