Javascript嵌套对象访问根级别

时间:2012-08-29 14:24:46

标签: javascript object

我在javascript中有一个嵌套对象,如下所示:

{
nameRoot: "my object",
sub: {
  nameSub: "my sub object"
}
}

我想从sub。

中定义的函数访问nameRoot

使用函数我会定义类似:

var self = this;

并使用self,但我怎样才能在文字对象中执行此操作?

2 个答案:

答案 0 :(得分:1)

以下代码允许您链接到父元素,并避免父元素出现在for-in循环中。

var parent = { a: 1 };
var child = { b: 2 };

Object.defineProperty(
    child, 'parent', 
    { value: parent, 
      enumerable: false }
);

parent.child = child;

child.performAction = function() {
    console.log(this.parent.a) // 1
}

答案 1 :(得分:0)

所以最好的方法是使用功能范围。

function myFunc(){
   this.nameRoot = "my object";
}

然后你可以做类似的事情:

var func = new myFunc();
func.sub = new myFunc();
func.sub.nameRoot = "my sub object";

显然有更聪明的方法可以做到(例如通过函数参数传递名称),但这是一般模式。