在内部函数内传递对象

时间:2013-01-19 13:31:05

标签: javascript scope

function google(){
     var kevin = "hello";
     john(kevin);
}

function john(arg){
     var mark = arg;
    function yahoo(mark){
          alert(mark);   
    }

}

现在,当我调用我的函数google()时,为什么不在雅虎调用警报。

3 个答案:

答案 0 :(得分:2)

您不会致电yahoo。你需要这样做:

function john(arg){
     var mark = arg;
    function yahoo(mark){
          alert(mark);   
    }

    yahoo(mark); // <-------
}

您还可以重构代码以执行以下操作:

function john(arg){
     var mark = arg;

    (function yahoo(){
          alert(mark);   
    })();
}

答案 1 :(得分:1)

因为yahoo内没有调用john函数。

function john(arg) {
    var mark = arg;
    function yahoo(mark) {
          alert(mark);   
    }
    yahoo(mark);  // <-- call
}

答案 2 :(得分:1)

您正在定义函数yahoo但从未实际调用它。试试这个:

function google(){
     var kevin = "hello";
     john(kevin);
}

function john(arg){
     var mark = arg;
     yahoo(mark);
     function yahoo(mark){
          alert(mark);   
     }    
}