在javascript中调用父属性和函数?

在javascript中调用父属性和函数?,javascript,Javascript,如何在javascript中调用父对象属性和函数?例如,如果我有一个对象gen0和一个子对象gen1,该子对象有一个子对象gen2。gen1如何命名它的父代和函数?gen2如何调用其父函数和祖父母函数(不使用原型) 没有任何东西可以自动将对象链接回包含对它们的引用的对象。如果需要,需要在代码中显式执行 gen0={ 名称:“gen0”, gen0Func:function(){ console.log(“gen0Func”); log(“我的名字是”+这个名字); }, 第1代:{ 名称:“g

如何在javascript中调用父对象属性和函数?例如,如果我有一个对象
gen0
和一个子对象
gen1
,该子对象有一个子对象
gen2
gen1
如何命名它的父代和函数?
gen2
如何调用其父函数和祖父母函数(不使用原型)


没有任何东西可以自动将对象链接回包含对它们的引用的对象。如果需要,需要在代码中显式执行

gen0={
名称:“gen0”,
gen0Func:function(){
console.log(“gen0Func”);
log(“我的名字是”+这个名字);
},
第1代:{
名称:“gen1”,
gen1Func:函数(){
console.log(“gen1Func”);
log(“我的名字是”+这个名字);
console.log(“我父母的名字是”+this.parent.name);//不起作用。
},
第2代:{
名称:“gen2”,
gen2Func:函数(){
console.log(“gen2Func”);
log(“我的名字是”+这个名字);
console.log(“我父母的名字是”+this.parent.name);//不起作用。
console.log(“我的祖父母的名字是”+this.parent.parent.name);//不起作用。
}  
}
}
}
gen0.gen1.parent=gen0;
gen0.gen1.gen2.parent=gen0.gen1;
gen0.gen1.gen2.gen2Func()
gen0={
名称:“gen0”,
gen0Func:function(){
console.log(“gen0Func”);
log(“我的名字是”+这个名字);
},
第1代:{
名称:“gen1”,
gen1Func:函数(){
console.log(“gen1Func”);
log(“我的名字是”+这个名字);
console.log(“我父母的名字是”+gen0.name);//不起作用。
},
第2代:{
名称:“gen2”,
gen2Func:函数(){
console.log(“gen2Func”);
log(“我的名字是”+这个名字);
console.log(“我父母的名字是”+gen0.gen1.name);//不起作用。
console.log(“我祖父母的名字是”+gen0.name);//不起作用。
}  
}
}
}
gen0.gen1.gen2.gen2Func()
var gen0={
名称:“gen0”,
gen0Func:function(){
console.log(“gen0Func”);
log(“我的名字是”+这个名字);
},
第1代:{
名称:“gen1”,
gen1Func:函数(){
console.log(“gen1Func”);
log(“我的名字是”+这个名字);
log(“我的父母的名字是”+this.parent.name);
},
第2代:{
名称:“gen2”,
gen2Func:函数(){
console.log(“gen2Func”);
log(“我的名字是”+这个名字);
console.log(“我父母的名字是”+this.parent.name);//不起作用。
log(“我的祖父母的名字是”+this.parent.parent.name);
}  
}
},
init:function(){
this.gen1.parent=this;
this.gen1.gen2.parent=this.gen1;
归还这个;
}
}.init();
gen0.gen1.gen1Func();

gen0.gen1.gen2.gen2Func()您应该以不同的方式处理此问题。我这样做的一种方法是使用具有关系的类和对象(
parent
children
,等等)

class-Gen{
构造函数(名称、父级){
this.name=名称;
this.parent=parent;
}
(){
console.log('Hi!.I'+这个.name);
}
}
var gen0=新的Gen('gen0');
var gen1=新的Gen('gen1',gen0);
var gen2=新的Gen('gen2',gen1);
gen0.sayHi();//你好我是gen0
gen1.sayHi();//你好我是gen1
gen1.parent.sayHi();//你好我是gen0

gen2.parent.parent.sayHi();//你好我是gen0
你没有。一个对象可以是多个对象的子对象,没有链接。的可能重复请了解原型继承
gen0 = {
    name: "gen0",
    gen0Func: function() {
        console.log("gen0Func");
        console.log("My name is " + this.name);
    },
    gen1: {
        name: "gen1",
        gen1Func: function() {
            console.log("gen1Func");
            console.log("My name is " + this.name);
            console.log("My parents name is " + this.parent.name); // Doesn't work.
        },
        gen2: {
            name: "gen2",
            gen2Func: function() {
                console.log("gen2Func");
                console.log("My name is " + this.name);
                console.log("My parents name is " + this.parent.name); // Doesn't work.
                console.log("My grandparents name is " + this.parent.parent.name); // Doesn't work.

            }  
        }
    }
}