继承的概念 
继承:通过一定的方式事项某个类型A获取另外一个类型B的属性和方法其中类型A就是子类型,类型B就是父类型。
 
Javascript的继承 
Object是所有对象的父级|父类型|超类型,
js中所有的对象都直接或间接继承自Object。继承有两种方式,接受继承和实现继承,
在js中只有实现继承,试下继承主要依赖原型链来完成。
Javascript实现继承的几种方式
1.原型式继承
2.原型链继承
3.经典继承
4.组合继承
原型式继承 原型链继承方式A 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <script> 	//提供一个构造函数 	function Person(name,age) { 		this.name = name; 		this.age = age; 	}; 	//设置原型对象的属性 	Person.prototype.className = '1班'; 	//使用构造函数来创建原型对象 	var p1 = new Person('小明',10); 	var p2 = new Person('小红',20); 	//打印p1,p2的className 	console.log(p1.className); //1班 	console.log(p2.className); //1班 </script> 
 
原型链继承方式B 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <script> 	//提供一个构造函数 	function Person(name,age) { 		this.name = name; 		this.age = age; 	}; 	//设置原型对象的属性 	Person.prototype = { 		constructor:Person, 		className:'1班' 	}; 	//使用构造函数来创建原型对象 	var p1 = new Person('小明',10); 	var p2 = new Person('小红',20); 	 	//打印p1,p2的className 	console.log(p1.className); //1班 	console.log(p2.className); //1班 	 	//对象p1,p2继承了构造函数原型对象的属性className, 	但是使用原型替换的方式实现继承的时候,原有原型对象中的属性和方法会丢失。 </script> 
 
原型链继承方式C 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 //提供一个超类型|父类型构造函数 function SuperPerson() { 	this.name = 'SuperPerson'; 	this.showName = function() { 		console.log(this.name); 		} 	} //设置父类型的原型属性和原型方法 	SuperPerson.prototype.info = 'SuperPerson的信息'; 	SuperPerson.prototype.showinfo = function() { 		console.log(this.info); 	} //提供子类型 	function Person() {}; //设置继承 	Person.prototype = SuperPerson.prototype; 	Person.prototype.constructor = Person; 	 	var p1 = new Person(); 	console.log(p1.name);  //undefined 	console.log(p1.info);  //SuperPerson的信息 	p1.showinfo(); //SuperPerson的信息 	p1.showName(); //not a function 	 
 
结论 
上面的方式可以继承父类型的原型属性和原型方法,但是无法继承实例属性和实例方法
 
      
     
    
   
  
    
    
  
    
      < 
      
        
          JS瀑布流
        
      
     
  
  
    
      起点
      >