Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从嵌套对象文本返回属性名称_Javascript - Fatal编程技术网

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
的引用,如何调用函数?你想解决什么更高层次的问题?