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.attributes 是不够的,因为 myObject 更改或更好地分配给一个新变量。

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 回答