<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>继承</title> </head> <body> <script type="text/javascript"> /* // A 构造函数 function A(){ this.age = 30; } A.prototype.say = function(){ console.log(‘hello‘); } var obj_a = new A(); console.log(obj_a.age); obj_a.say(); //hello //obj_a 继承了 原型对象 A.prototype ,能够直接使用原型对象的方法 */ //让B的实例对象 继承 A的实例对象 //基本语法: B.prototype = new A(); // A 父类构造函数 /*function A(){ this.age = 30; } A.prototype.say = function(){ console.log(‘hello‘); } var obj_a = new A(); // B是子类构造函数 function B(){ this.sex = "男"; } B.prototype = obj_a; // B.prototype = new A(); B.prototype.zou = function(){ console.log(‘走路‘); } //实例化子类构造函数B,得到一个子对象 var obj_b = new B(); //B的实例对象,可以使用A实例对象的成员 console.log( obj_b.age ); obj_b.say(); obj_b.zou();*/ // 使用场景 人 都会说话 走路 有的人会打球 有的人会唱歌 // 多个子类构造函数 继承 同一个父类构造函数 //父类构造函数 function Person(){ } Person.prototype.say = function(){ console.log(‘所有人都会说话‘); } Person.prototype.walk = function(){ console.log(‘所有人都会走路‘); } //子类构造函数 歌手 function Ren(){ } Ren.prototype = new Person(); Ren.prototype.changge = function(){ console.log(‘唱歌‘); } var obj = new Ren(); obj.say(); obj.walk(); obj.changge(); //子类构造函数 球员 function Ball(){ } Ball.prototype = new Person(); Ball.prototype.play = function(){ console.log(‘打球‘) } var obj2 = new Ball(); obj2.say(); obj2.walk(); obj2.play(); </script> </body> </html>
原文:https://www.cnblogs.com/dazahui/p/14432536.html