44

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

var runApp = {

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

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

3 回答 3

54

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

runApp.init();

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

于 2011-11-21T21:52:18.987 回答
12

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

因此,您的代码变成了这样:

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

// Now we call init
runApp.init();
于 2011-11-21T21:56:01.213 回答
2

你可以试试下面的代码。它应该工作:

var runApp = {

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

  run: function() { 
     alert("It's running!");
  }
};
于 2020-07-02T10:28:57.900 回答