我在javascript中有一个嵌套对象,如下所示:
{
nameRoot: "my object",
sub: {
nameSub: "my sub object"
}
}
我想从sub。
中定义的函数访问nameRoot使用函数我会定义类似:
var self = this;
并使用self,但我怎样才能在文字对象中执行此操作?
答案 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";
显然有更聪明的方法可以做到(例如通过函数参数传递名称),但这是一般模式。