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

新手上路,请多包涵

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

 var RunApp = {

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

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

原文由 holyredbeard 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 526
2 个回答

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

 RunApp.init();

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

原文由 Matt Ball 发布,翻译遵循 CC BY-SA 4.0 许可协议

对象的 init 属性没有什么神奇之处,您恰好为其分配了一个函数。所以如果你不调用它,它就不会运行。构造这样的对象字面量时,不会为您执行任何函数。

因此,您的代码变为:

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

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

原文由 Alex Wayne 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题