0

次のオブジェクトがあります。

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

       cleanUp: function () {
       }
   }

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

コメントが指摘しているように、音楽オブジェクトから turnOff メソッドを呼び出したいのですが、どうすればよいですか? thisfood オブジェクトを参照していますが、music オブジェクトにアクセスする必要があります...

4

3 に答える 3

1
var party =
{
   food:
   {
       serve: function () {
         party.music.turnOff();
       },
       cleanUp: function () {
       }
   },
   music:
   {
       turnOff: function () {
       }
   }
}
于 2012-09-08T02:24:17.197 に答える
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 に答える
0

()と呼びparty.music.turnOffます。

参考までに、上記のコード ブロックは有効ではありません。コンマがいくつかありません -serveおよびfood閉じ中かっこの後。

于 2012-09-08T02:19:25.897 に答える