Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.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对象作为另一个js对象的父对象_Javascript_Oop_Prototype - Fatal编程技术网

Javascript对象作为另一个js对象的父对象

Javascript对象作为另一个js对象的父对象,javascript,oop,prototype,Javascript,Oop,Prototype,你能给我解释一下如何用JavaScript做这样的事情吗: 创建一个对象 创建第二个对象 将第一个对象设置为第二个对象的父对象 将第二个对象作为子对象添加到第一个对象 作为Java开发者,这听起来很简单,但我现在很困惑 演示: var childFunction=函数(父函数){ this.parent=parent; 该值=14; this.fun=函数(){ document.getElementById(“test”).innerHTML=parent.value; }; this.se

你能给我解释一下如何用JavaScript做这样的事情吗:

  • 创建一个对象
  • 创建第二个对象
  • 将第一个对象设置为第二个对象的父对象
  • 将第二个对象作为子对象添加到第一个对象
  • 作为Java开发者,这听起来很简单,但我现在很困惑

    演示:

    var childFunction=函数(父函数){
    this.parent=parent;
    该值=14;
    this.fun=函数(){
    document.getElementById(“test”).innerHTML=parent.value;
    };
    this.setParent=函数(父级){
    this.parent=parent;
    }
    }
    var parentFunction=function(){
    这个值=20;
    这个。child=“”;
    this.addChild=函数(child){
    child.setParent(this);
    这个。孩子=孩子;
    }
    this.setchild=函数(child){
    这个孩子=孩子;
    }
    this.createChild=函数(){
    this.child=新的childFunction(this);
    }
    }
    VaR PAR=新PARTANCE函数();
    var ch=新的子函数(“”);
    //par.setchild(新的子函数(par));
    //par.createChild();
    PAL。
    儿童;代码>
    
    当前代码不会将父级传递给子级构造函数中的子级

    正如@Axel point在他的回答中指出的,问题的原因是变量
    parent
    没有绑定到任何东西,除非您在构造函数的名为
    parent
    的参数中传入一个parent。通过在子构造函数中传入
    parent
    ,可以为此行创建一个闭包:

    document.getElementById("test").innerHTML=parent.value;
    
    这已固定在以下位置:

    var childFunction=函数(父函数){
    this.parent=parent;
    该值=14;
    this.fun=函数(){
    document.getElementById(“test”).innerHTML=parent.value;
    };
    this.setParent=函数(父级){
    this.parent=parent;
    }
    }
    var parentFunction=function(){
    这个值=20;
    这个。child=“”;
    this.addChild=函数(child){
    child.setParent(this);
    这个。孩子=孩子;
    }
    this.setchild=函数(child){
    这个孩子=孩子;
    }
    this.createChild=函数(){
    this.child=新的childFunction(this);
    }
    }
    VaR PAR=新PARTANCE函数();
    
    var ch=新的子函数(par)// 当前代码不会将父级传递给子级构造函数中的子级

    正如@Axel point在他的回答中指出的,问题的原因是变量
    parent
    没有绑定到任何东西,除非您在构造函数的名为
    parent
    的参数中传入一个parent。通过在子构造函数中传入
    parent
    ,可以为此行创建一个闭包:

    document.getElementById("test").innerHTML=parent.value;
    
    这已固定在以下位置:

    var childFunction=函数(父函数){
    this.parent=parent;
    该值=14;
    this.fun=函数(){
    document.getElementById(“test”).innerHTML=parent.value;
    };
    this.setParent=函数(父级){
    this.parent=parent;
    }
    }
    var parentFunction=function(){
    这个值=20;
    这个。child=“”;
    this.addChild=函数(child){
    child.setParent(this);
    这个。孩子=孩子;
    }
    this.setchild=函数(child){
    这个孩子=孩子;
    }
    this.createChild=函数(){
    this.child=新的childFunction(this);
    }
    }
    VaR PAR=新PARTANCE函数();
    
    var ch=新的子函数(par)// 当前代码不会将父级传递给子级构造函数中的子级

    正如@Axel point在他的回答中指出的,问题的原因是变量
    parent
    没有绑定到任何东西,除非您在构造函数的名为
    parent
    的参数中传入一个parent。通过在子构造函数中传入
    parent
    ,可以为此行创建一个闭包:

    document.getElementById("test").innerHTML=parent.value;
    
    这已固定在以下位置:

    var childFunction=函数(父函数){
    this.parent=parent;
    该值=14;
    this.fun=函数(){
    document.getElementById(“test”).innerHTML=parent.value;
    };
    this.setParent=函数(父级){
    this.parent=parent;
    }
    }
    var parentFunction=function(){
    这个值=20;
    这个。child=“”;
    this.addChild=函数(child){
    child.setParent(this);
    这个。孩子=孩子;
    }
    this.setchild=函数(child){
    这个孩子=孩子;
    }
    this.createChild=函数(){
    this.child=新的childFunction(this);
    }
    }
    VaR PAR=新PARTANCE函数();
    
    var ch=新的子函数(par)// 当前代码不会将父级传递给子级构造函数中的子级

    正如@Axel point在他的回答中指出的,问题的原因是变量
    parent
    没有绑定到任何东西,除非您在构造函数的名为
    parent
    的参数中传入一个parent。通过在子构造函数中传入
    parent
    ,可以为此行创建一个闭包:

    document.getElementById("test").innerHTML=parent.value;
    
    这已固定在以下位置:

    var childFunction=函数(父函数){
    this.parent=parent;
    该值=14;
    this.fun=函数(){
    document.getElementById(“test”).innerHTML=parent.value;
    };
    this.setParent=函数(父级){
    this.parent=parent;
    }
    }
    var parentFunction=function(){
    这个值=20;
    这个。child=“”;
    this.addChild=函数(child){
    child.setParent(this);
    这个。孩子=孩子;
    }
    this.setchild=函数(child){
    这个孩子=孩子;
    }
    this.createChild=函数(){
    this.child=新的childFunction(this);
    }
    }
    VaR PAR=新PARTANCE函数();
    var ch=新的子函数(par)// 当您更改时,它将立即开始工作:

     document.getElementById("test").innerHTML=this.parent.value;
    
    当您更改时,它将立即开始工作:

     document.getElementById("test").innerHTML=this.parent.value;
    
    当您更改时,它将立即开始工作:

     document.getElementById("test").innerHTML=this.parent.value;
    
    当您更改时,它将立即开始工作:

     document.getElementById("test").innerHTML=this.parent.value;
    

    检查每个案例中的
    引用内容,您可能会感到惊讶。代码似乎是正确的,您的cu是什么