prototype原型的理解

  function A (){
    this.name = "a";
    // this.bat = function(){
    //   alert(this.name)
    // }
  }
  A.prototype.bat = function(){
      alert(this.name)
    }
  function B(){
    A.call(this);
  }

上面这种写法,B继承了A的方法与属性;如果B继续增加方法,A不会增加

  function A (){
    this.name = "a";
    // this.bat = function(){
    //   alert(this.name)
    // }
  }
  A.prototype.bat = function(){
      alert(this.name)
    }
  function B(){
    A.call(this);
  }
  B.prototype = A.prototype;

上面这种写法,B继承了A的方法与属性,同时B的原型指向A的原型;如果B继续增加方法,A会自动增加

  B.prototype.newbat=function(){
    alert("c");    
  }
  var obj = new A();
  obj.newbat();
   

前者中,obj没有新增方法;后者中,obj包含了新增的方法。

猜你喜欢

转载自www.cnblogs.com/xiaoguniang0204/p/12368920.html
今日推荐