Javascript 从嵌套对象文本返回属性名称
我有一个对象,我试图获取一个方法的父属性的名称Javascript 从嵌套对象文本返回属性名称,javascript,Javascript,我有一个对象,我试图获取一个方法的父属性的名称 var a={b:{c:function(){return//I want“b”}} 这可能吗 这是不可能的。当变量对象包含对函数的引用时,在相反方向上没有引用。也可以有多个引用,例如 var a = {b: {c: function() {return // I want "b" }}} var x = {y: {z: a.b.c}}; 现在a.b.c和x.y.z是相同的函数,它如何知道是返回b还是y 但是,请注意,当您将函数调用为 a.b.c
var a={b:{c:function(){return//I want“b”}}
这可能吗 这是不可能的。当变量对象包含对函数的引用时,在相反方向上没有引用。也可以有多个引用,例如
var a = {b: {c: function() {return // I want "b" }}}
var x = {y: {z: a.b.c}};
现在a.b.c
和x.y.z
是相同的函数,它如何知道是返回b
还是y
但是,请注意,当您将函数调用为
a.b.c()
它接收a.b
的值作为中的上下文。因此,您可以执行以下操作:
var a={
b:{
c:函数(){
console.log(this.d);
},
d:1
}
};
变量x={
y:{
z:a.b.c,
d:10
}
};
a、 b.c();
x、 y.z()代码>您可以声明一个函数来迭代包含该函数的对象,但我们必须知道主对象(在本例中是a)
要调用该函数,因为我们不知道b,我们必须迭代a的属性和嵌套对象才能找到它
var a={b:{c:function(){for(a)console.log(p)}
对于(a中的p){
对于(a[p]中的p2){
a[p][p2]();
}
}
您的意思是动态的,对吗?您如何调用该函数?函数并不真正“知道”谁引用了它们。如果您还没有对a.b
的引用,如何调用函数?你想解决什么更高层次的问题?