1. 程式人生 > >js對象繼承

js對象繼承

blog for 方法 call fun for in () pre prot

 一般繼承是出現的問題

    function people(name,sex){
      this.name=name;
      this.sex=sex;
    }
    people.prototype.showname=function(){
      alert(this.name);
    }
    function student(name,sex,job){
      people.call(this,name,sex);
      this.job=job;
    }
    student.prototype = people.prototype;//
對象賦給對象,就會出現對象的引用,如果子類原型添加一個方法,父類就會受影響 var p1=new people(‘jack‘,32); var s1=new student(‘jenny‘,24,‘student‘); console.log(p1); console.log(s1);

拷貝繼承

  function people(name,sex){
      this.name=name;
      this.sex=sex;
    }
    people.prototype.showname=function(){
      alert(
this.name); } function student(name,sex,job){ people.call(this,name,sex);//屬性繼承:調用父類的構造函數 this.job=job; } extend(student.prototype,people.prototype);//拷貝繼承,利用for in 實現方法的繼承 student.prototype.showjob=function(){ alert(); } function extend(obj1,obj2){
for (var attr in obj2) { obj1[attr]=obj2[attr]; } } var p1=new people(‘jack‘,32); var s1=new student(‘jenny‘,24,‘student‘); console.log(p1); console.log(s1);

js對象繼承