function father (sex,name)
{                this.name=name;
this.sex=sex;
this.hao=function  ()
{
alert(this.sex+","+this.name );
}
            }
            function child (sex,name,age)
{
this.method=father;   //使FATHER成为自己的方法
// 使NAME成为自己的属性  this.method(name);
  this.method(sex);
delete this.method;
                this.age=age;
this.good=function  () {
alert(this.age);
}
                    }
var fa=new father("man","he");
var ch=new child("woman","wei","26"); fa.hao();
ch.hao();
ch.good();
               当同时传两中参数时有一个UNDEFINED,为什么呢?

解决方案 »

  1.   

    this.method(name);
    this.method(sex);
     
    这两句合为一句,不然前一次的赋值就被覆盖,改为:
    this.method(sex,name);
      

  2.   


    function father (sex,name){
        this.name=name;
        this.sex=sex;
        this.hao=function (){
            alert(this.sex+","+this.name );
        }
    }
    function child (sex,name,age){
        this.method=father; //使FATHER成为自己的方法
        // 使NAME成为自己的属性
        //this.method(name);
        //this.method(sex);
        this.method(sex,name);
        delete this.method;
        this.age=age;
        this.good=function () {
            alert(this.age);
        }
    }
    var fa=new father("man","he");
    var ch=new child("woman","wei","26");fa.hao();
    ch.hao();
    ch.good();
      

  3.   

    伪继承是吧this.method=father;
    // 下面两行错了 你这样写 只相当于给father传递了一个参数sex 
    this.method(name);
    this.method(sex);看到没你的函数: function father (sex,name)
    this.method(sex , name)建议你用apply或者call方法