深入學習原型繼承概念

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章