<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
// js中怎麼實現繼承:通過原型鏈的概念
// 構造函數 原型對象 實例對象 三者之間的關係
/*
1.構造函數.prototype = 原型對象
2.原型對象.constructor = 構造函數(模板)
3.原型對象.isPrototypeOf(實例對象) 判斷實例對象的原型是不是 當前對象
4.構造函數 和 實例對象 (類和實例)
*/
// 父類 構造函數 sup
function Sup(name){
this.name = name;
}
// 父類原型對象
Sup.prototype = {
constructor:Sup,
sayName:function(){
alert(this.name)
}
}
// 子類構造函數
function Son(age){
this.age = age;
}
// 如果我們讓子類的原型對象變爲父類的實例化對象 將會發生什麼?
/*
1.此時的原型對象包含一個指向另一個原型的指針
Sup 的實例對象 和 原型對象有一個 isPrototypeOf 的關係
2.相應的另一個原型中也包含着指向另一個構造函數的指針
子類的原型對象的構造器(模板)變成了父類的構造器
以此實現繼承
*/
// alert(Son.prototype.constructor)
Son.prototype = new Sup("小張");
// alert(Son.prototype.constructor)
var son1 = new Son();
alert(son1.name)//實現繼承
son1.sayName();
</script>
</body>
</html>
深入學習原型繼承概念
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.