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

How to access outer object's attribute from an inner object?

本文关键字:对象 属性 外部 访问 内部对象      更新时间:2023-09-26

能否通过inner对象的函数访问outervalue ?有办法吗?

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

无法引用包含对象,因为您的"内部"对象可能具有无限数量的包含对象。你必须显式地给它一个对父对象的引用。

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

你能做的就是通过外部对象的引用显式地引用它的属性,例如:

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

你不能通过javascript规范做到这一点。也许这样:

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