0

我有以下对象:

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

       cleanUp: function () {
       }
   }

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

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

4

3 回答 3

1

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

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

       cleanUp: function () {
       }
   }

   this.music = 
   {
       turnOff: function () {
       }
   }
})();
于 2012-09-08T02:21:09.440 回答
1
var party =
{
   food:
   {
       serve: function () {
         party.music.turnOff();
       },
       cleanUp: function () {
       }
   },
   music:
   {
       turnOff: function () {
       }
   }
}
于 2012-09-08T02:24:17.197 回答
0

称它为party.music.turnOff()。

仅供参考,您上面的代码块无效。您缺少一些逗号 - 在大括号serve和右food大括号之后。

于 2012-09-08T02:19:25.897 回答