classB.prototype = new classA();//1 classB.prototype =classA.prototype;//2 1与2的区别


function classA()
{
 this.first='1';
 this.cs=function()
 {
  alert('cs');
 } 
}
//3,4,5的区别
//3,4是在类不实例化就存在此原型方法
//5是在类实例化后才有此原型方法
classA.prototype.a = function(){return "a";};//3
classA.prototype.b = function(){return "a.b";};//4

classB=function()
{
 classB.prototype.b = function(){return "b";};//5
}

//下面的二行的意义:1行是把classA里面的构造函数里的属性和公有方法及原型方法和属性全部继承
//2行单单把classA的构造函数外面的原型方法和属性继承,所以推荐采用1行的方法
classB.prototype = new classA();//1
classB.prototype =classA.prototype;//2

原文地址:https://www.cnblogs.com/kuailewangzi1212/p/888522.html