理解鏈結
1,簡單原型鏈
function super()
function sub()
sub.prototype = new super(); // 核心
var sub1 = new sub();
var sub2 = new sub();
sub1.val = 2;
sub1.arr.push(2);
alert(sub1.val); // 2
alert(sub2.val); // 1
alert(sub1.arr); // 1, 2
alert(sub2.arr); // 1, 2
2,借用建構函式
function super(val)
}function sub(val)
var sub1 = new sub(1);
var sub2 = new sub(2);
sub1.arr.push(2);
alert(sub1.val); // 1
alert(sub2.val); // 2
alert(sub1.arr); // 1, 2
alert(sub2.arr); // 1
alert(sub1.fun === sub2.fun); // false
3,組合繼承(最常用)
function super()
// 在此處宣告函式
super.prototype.fun1 = function(){};
super.prototype.fun2 = function(){};
function sub()
sub.prototype = new super(); // 核心
var sub1 = new sub(1);
var sub2 = new sub(2);
alert(sub1.fun === sub2.fun); // true
4,原型式繼承
function beget(obj);
f.prototype = obj;
return new f();
}function super()
// 拿到父類物件
var sup = new super();
// 生孩子
var sub = beget(sup); // 核心
// 增強
sub.attr1 = 1;
sub.attr2 = 2;
alert(sub.val); // 1
alert(sub.arr); // 1
alert(sub.attr1); // 1
JavaScript 繼承的幾種方式
1 原型繼承 控制台顯示的結果 這種繼承方式有個缺點就是繼承的所有的屬性都是一樣的 2 建構函式繼承 function student name,age,score var stu1 new student 小明 10,男 10kg 100 console.log stu1.name,stu1.ag...
javascript實現繼承的幾種方式
前言 js作為物件導向的弱型別語言,繼承也是其非常強大的特性之一。那麼如何在js中實現繼承呢?讓我們拭目以待。既然要實現繼承,那麼首先我們得有乙個父類,如下 定義乙個動物類 function animal name 原型方法 animal.prototype.eat function food 核心...
JavaScript中幾種物件繼承的方式對比
function parent parent.prototype.say function function child console.log newchiid say error!缺點 借助原型鏈實現繼承 function parent function child child.prototyp...