Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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中的新手,我想了解继承是如何工作的,我以前使用C++,从主类到子孙很容易处理变量,我尝试了原型方法,但不那么容易。 这是我的密码。。。正确的方法是什么_Javascript - Fatal编程技术网

如何使用具有多个子原型对象的原型嵌套对象和共享变量? 我是JavaScript中的新手,我想了解继承是如何工作的,我以前使用C++,从主类到子孙很容易处理变量,我尝试了原型方法,但不那么容易。 这是我的密码。。。正确的方法是什么

如何使用具有多个子原型对象的原型嵌套对象和共享变量? 我是JavaScript中的新手,我想了解继承是如何工作的,我以前使用C++,从主类到子孙很容易处理变量,我尝试了原型方法,但不那么容易。 这是我的密码。。。正确的方法是什么,javascript,Javascript,函数main(){ this.name=“主对象,名称”; } main.prototype.LevelA1=函数(){ 返回“LevelA1方法”+this.name;//此级别正确读取this.name } main.prototype.LevelA=函数(){ 这个。a=“laaaa” 返回“LevelA”+this.name;//变量this.name可见 } main.prototype.LevelA.LevelB=函数(){ 返回this.name+“Level B”+this.a/

函数main(){
this.name=“主对象,名称”;
}
main.prototype.LevelA1=函数(){
返回“LevelA1方法”+this.name;//此级别正确读取this.name
}
main.prototype.LevelA=函数(){
这个。a=“laaaa”
返回“LevelA”+this.name;//变量this.name可见
}
main.prototype.LevelA.LevelB=函数(){
返回this.name+“Level B”+this.a//this.name未定义
}
main.prototype.LevelA.LevelB.LevelC=函数(){
返回“C级”+this.name;//this.name不可见且不产生错误
}
main.prototype.LevelA.LevelB.LevelC.LevelD=函数(){
this.bb=“levelD的变量”
返回“Level D”+this.bb+this.name;//this.name不可见并产生错误
}
m=新的主管道();
console.log(m.LevelA());
log(m.LevelA.LevelB());
log(m.LevelA.LevelB.LevelC());
log(m.LevelA.LevelB.LevelC.LevelD());
var cc=新的m.LevelA.LevelB.LevelC.LevelD();

控制台日志(cc.bb)您正在设置新函数,而不是设置新原型,因此每个新函数的词法上下文与
Main.prototype
无关

我建议您使用类来处理逻辑

这种方法将“Level”函数封装在从
Main
class扩展而来的类中

主类{
构造函数(){
this.name=“主对象,名称”;
}
}
类mainlever扩展了Main{
A1级(){
返回“LevelA1方法”+this.name;//此级别正确读取this.name
}
LevelA(){
这个。a=“laaaa”
返回“LevelA”+this.name;//变量this.name可见
}
B级(){
返回this.name+“Level B”+this.a//this.name未定义
}
C级(){
返回“C级”+this.name;//this.name不可见且不产生错误
}
LevelD(){
this.bb=“levelD的变量”
返回“Level D”+this.bb+this.name;//this.name不可见并产生错误
}
}
设m=新的MainLevel();
console.log(m.LevelA());
console.log(m.LevelB());
console.log(m.LevelC());

console.log(m.LevelD())我认为这与问题或答案没有任何关系,但请注意,我已将您的
警报
s替换为
日志
s。您好,感谢您的回答,它解决了这个特定问题,但我真正需要的是知道如何制作一个“树”,其中一个主对象可以有多个对象和这些对象子对象等等。。。“所有的孩子都继承他们祖先的财产”。(*使用非全局变量,因此它们不会干扰任何可以使用此对象的脚本)。如何在JavaScript中实现它?