从对象内部的函数调用函数(对象文字)

时间:2011-11-21 21:51:06

标签: javascript function object-literal

我正在学习在JS中使用对象文字,我试图通过在同一对象中通过另一个函数调用它来获取对象内部的函数。从函数“init”调用函数时,为什么函数“run”不运行?

var runApp = {

    init: function(){   
         this.run()
    },

    run: function() { 
             alert("It's running!");
    }
};

3 个答案:

答案 0 :(得分:46)

该代码只是声明。你需要实际调用函数:

runApp.init();

演示:http://jsfiddle.net/mattball/s6MJ5/

答案 1 :(得分:10)

对象的init属性没有什么神奇之处,你碰巧已经为其分配了一个函数。因此,如果您不调用它,那么它将无法运行。在构造像这样的对象文字时,没有任何函数可以执行。

因此,您的代码变为:

var runApp = {
    init: function(){   
         this.run()
    },
    run: function() { 
         alert("It's running!");
    }
};

// Now we call init
runApp.init();

答案 2 :(得分:0)

您可以尝试以下代码。它应该工作:

var runApp = {

  init: function(){   
     runApp.run()
  },

  run: function() { 
     alert("It's running!");
  }
};