2

私は次のオブジェクトを持っています:

var myObject = {
    attributes: { name: "dev.pus", age: 29 },
    someInjectedObject: {
        name: "someComponent",
        action: function() {
            // do something
            return this.this.attributes.name; // this surely won't work :(
        }
    }
};

ご覧のとおり、値を確認せずに、オブジェクトのネストされた部分からmyObject.attributes.nameを取得したいと思います。

どうすればよいですか?参照を定義するにはどうすればよいですか?

編集: myObjectが変更されるか、新しい変数に割り当てられるため、単純なmyObject.attributesでは不十分です。

4

2 に答える 2

4

オブジェクトの周囲にクロージャを作成します。

var myObject = (function() {
  var result = {
    attributes: { name: "dev.pus", age: 29 },
    someInjectedObject: {
      name: "someComponent",
      action: function() {
        // do something
        return result.attributes.name;
      }
    };
  };
  return result;
})();
于 2012-07-15T13:23:42.153 に答える
0

あなたはmyObjectこのように直接参照することができます:

var myObject = {
    attributes: { name: "dev.pus", age: 29 },
    someInjectedObject: {
        name: "someComponent",
        action: function() {
            // do something
            return myObject.attributes.name; // this surely will work :(
        }
    }
};

alert(myObject.someInjectedObject.action());
​

デモ

</ p>

于 2012-07-15T13:23:59.530 に答える