javascript繼承的幾種方法

2021-08-16 08:20:28 字數 1452 閱讀 6637

理解鏈結

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...