javascript从孩子调用父方法

时间:2012-09-08 02:15:57

标签: javascript object scope

我有以下对象:

var party =
{
   food:
   {
       serve: function () {
         // I want to call turnOff method from here
       }

       cleanUp: function () {
       }
   }

   music:
   {
       turnOff: function () {
       }
   }
}

正如评论指出的那样,我想从音乐对象中调用turnOff方法,我该怎么做呢? this指食物,但我需要访问音乐对象......

3 个答案:

答案 0 :(得分:1)

使用构造函数而不是带有引用父对象的变量的文字

var party = new (function()
{
   var self = this;
   this.food =
   {
       serve: function () {
           self.music.turnoff();
       },

       cleanUp: function () {
       }
   }

   this.music = 
   {
       turnOff: function () {
       }
   }
})();

答案 1 :(得分:1)

var party =
{
   food:
   {
       serve: function () {
         party.music.turnOff();
       },
       cleanUp: function () {
       }
   },
   music:
   {
       turnOff: function () {
       }
   }
}

答案 2 :(得分:0)

将其称为party.music.turnOff()。

仅供参考,您的上述代码块无效。你错过了一些逗号 - 在servefood关闭括号之后。