Javascript语法混乱[初学者]?

时间:2013-11-13 06:08:55

标签: javascript

我不明白以下作为Model对象一部分的javascript方法中的视图(“”)是什么:

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

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

3 个答案:

答案 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);
}