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

问题描述 投票:35回答:2

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

var runApp = {

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

    run: function() { 
             alert("It's running!");
    }
};
javascript function object-literal
2个回答
46
投票

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

runApp.init();

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


10
投票

您碰巧已为其分配了功能的对象的init属性没有什么神奇之处。因此,如果您不调用它,它将不会运行。构造这样的对象文字时,永远不会为您执行任何函数。

因此,您的代码将变为:

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

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

0
投票

以这种方式调用函数是否是一种好的编程习惯?

© www.soinside.com 2019 - 2024. All rights reserved.