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