继承的概念
在JavaScript中,继承就是当前对象可以使用其他对象的方法和属性。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| var animal = { name:"Animal", sex:"male", age:5, bark:function(){ console.log("Animal bark"); } }; var dog = {};
|
继承的实现方式
在上一节内容中,最终的结论就是可以通过继承来让dog
对象可以使用animal
对象的属性和方法,那怎么实现继承呢?
1. 最简单的继承实现
直接遍历父对象的属性,将所有的属性加到当前对象上
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| var animal = { name:"Animal", sex:"male", age:5, bark:function(){ console.log("Animal bark"); } }; var dog = {}; for (var k in animal){ dog[k]= animal[k]; }
|
2. 原型继承
每一个构造函数都有prototype
原型属性,通过构造函数创建出来的对象都继承自该原型属性。所以可以通过更改构造函数的原型属性来实现继承。
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| function Dog(){ this.type = "yellow Dog"; } function extend(obj1, obj2){ for (var k in obj2){ obj1[k] = obj2[k]; } }; extend(Dog.prototype, { name:"", age:"", sex:"", bark:function(){} }) Dog.prototype.extend = function(obj){ for (var k in obj){ this[k]=obj[k]; } } Dog.prototype.extend({ name:"", age:"", sex:"", bark:function(){} });
|