理解JS中構造函數、原型與實例中的關係

首先,我們先梳理一下他們之間的關係:每個構造函數都有一個原型對象,原型對象都包含一個指向構造函數的指針,而實例都包含一個指向原型對象的內部指針。

        function Person(){
			
		}

		//將屬性和方法都添加到了person的原型屬性prototype中
		Person.prototype.name = "nick";
		Person.prototype.age = 23;
		Person.prototype.state = "signal dog";
		Person.prototype.getState = function(){
			alert(this.state);
		}
		
		var person1 = new Person();
		person1.getState(); //signal dog
		
		var person2 = new Person();
		person2.getState(); //signal dog
		

當你創建一個新函數的時候,會自動創建一個prototype屬性,這個屬性是指向函數的原型對象。並且,默認情況下所有原型對象都會自動獲得一個constructor構造函數屬性。這個構造函數屬性是一個指向prototype屬性所在函數的指針。

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