我在javascript中有一个像这样的嵌套对象:
{
nameRoot: "my object",
sub: {
nameSub: "my sub object"
}
}
我想从 sub 中定义的函数访问 nameRoot。
使用一个函数,我会定义如下:
var self = this;
并使用了 self 但我怎样才能在文字对象中做到这一点?
我在javascript中有一个像这样的嵌套对象:
{
nameRoot: "my object",
sub: {
nameSub: "my sub object"
}
}
我想从 sub 中定义的函数访问 nameRoot。
使用一个函数,我会定义如下:
var self = this;
并使用了 self 但我怎样才能在文字对象中做到这一点?
以下代码允许您链接到父元素并避免父元素出现在 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
}
因此,最好的方法是使用函数范围。
function myFunc(){
this.nameRoot = "my object";
}
那么您可以执行以下操作:
var func = new myFunc();
func.sub = new myFunc();
func.sub.nameRoot = "my sub object";
显然有更聪明的方法可以做到这一点(例如通过函数参数传递名称),但这是一般模式。