Javascript 如何访问外部对象';来自内部对象的属性?
可以从Javascript 如何访问外部对象';来自内部对象的属性?,javascript,object,Javascript,Object,可以从内部对象的函数访问外部的值吗?有办法吗 var outer = { value: "1", inner: { getValue: function() { return value; // undefined } } } alert(outer.inner.getValue()); // fails 通过javascript规范无法做到这一点。 也许这样: var outer = { value:
内部对象的函数访问外部的值吗?有办法吗
var outer = {
value: "1",
inner: {
getValue: function() {
return value; // undefined
}
}
}
alert(outer.inner.getValue()); // fails
通过javascript规范无法做到这一点。
也许这样:
var outer = {
value: "1",
inner: (function(){
var parent = this;
return {
getValue: function() {
return parent.value;
}
}
}).apply(outer)
}
您可以通过外部对象的引用显式引用外部对象的属性,例如:
var outer = {
value: "1",
inner: {
getValue: function() {
return outer.value; // 1
}
}
}
alert(outer.inner.getValue());
但是,此解决方案没有那么灵活。无法引用包含对象,因为您的“内部”对象可能有无限多的包含对象。您必须是显式的,并给它一个对父对象的引用
var outer = { ... };
var inner = {
parent: outer,
getValue: function () { return this.parent.value() }
}