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

hol*_*ard 34 javascript function object-literal

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

var runApp = {

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

    run: function() { 
             alert("It's running!");
    }
};
Run Code Online (Sandbox Code Playgroud)

Mat*_*all 46

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

runApp.init();
Run Code Online (Sandbox Code Playgroud)

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


Ale*_*yne 10

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

因此,您的代码变为:

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

// Now we call init
runApp.init();
Run Code Online (Sandbox Code Playgroud)

  • 这不是他问的。他想通过调用同一对象中的另一个函数来调用对象内部的函数。 (2认同)