javascript:继承
-
混入式继承
通过一个函数遍历b对象自身属性和方法来添加到a对象上
var a = {y: 1}; var b = { a: 1, b: 2, c: function(){ console.log("c"); } } a.extend = function(obj){ for(var k in obj){ if(obj.hasOwnProperty(k)){ this[k] = obj[k]; } } }; a.extend(b); -
原型链继承(用的原型替换)
通过原型替换的方法 添加b对象的属性、方法
function Aa(){ this.y = 1 }; var b = { a: 1, b: 2, c: function(){ console.log("c"); } } var a = new Aa(); a.prototype = { constructor = Aa; //替换原型需要填加上constructor属性 a: 1, b: 2, c: function(){ console.log("c"); } } -
混入+原型链继承
function Aa(){ this.y = 1 }; var b = { a: 1, b: 2, c: function(){ console.log("c"); } } Aa.prototype.extend = function(obj){ for(var k in obj){ if(obj.hasOwnProperty(k)){ this[k] = obj[k]; } } } var a = new Aa(); a.extend(b); //这个是添加到实例化a的身上继承 Aa.prototype.extend(b); //这个是添加到Aa的原型身上继承 -
经典继承
Object.create()
语法:var newO = Object.create(obj);
作用: 创建一个新的以obj为原型的对象并返回。

浙公网安备 33010602011771号