如何从内部对象访问外部对象的属性?

时间:2014-03-24 13:37:28

标签: javascript object

可以从outer对象的函数访问value的{​​{1}}吗?有办法吗?

inner

3 个答案:

答案 0 :(得分:1)

你可以做的是通过引用明确引用外部对象的属性,例如:

var outer = {
    value: "1",
    inner: {
        getValue: function() {
            return outer.value; // 1
        }
    }
}

alert(outer.inner.getValue());

然而,这个解决方案并不灵活。

答案 1 :(得分:1)

没有办法引用包含对象,因为你的"内部"对象可以包含无限个包含对象。您必须明确并为其提供对父对象的引用。

var outer = { ... };

var inner = {
  parent: outer,
  getValue: function () { return this.parent.value() }
}

答案 2 :(得分:0)

您无法通过javascript规范执行此操作。 也许这样:

var outer = {
    value: "1",
    inner: (function(){
        var parent = this;
        return {
            getValue: function() {
                return parent.value;
            }
        }
    }).apply(outer)
}