1. 程式人生 > >JS——原型鏈(1)

JS——原型鏈(1)

function Emp(ename,salary){
			this.ename = ename;
			this.salary = salary;
		}

		var emp1 = new Emp("mary",3500);
		var emp2 = new Emp("join",5500);
		Emp.prototype.hireDate = "2015/05/01";

		console.log(emp1.toString()+":"+emp1.hireDate);
		console.log(emp2.toString()+":"+emp2.hireDate);


原來一直不懂這些,現在有了一些感悟:

(1)圖中的Emp是建構函式,Emp.prototype是Emp的原型物件,emp1和emp2是Emp1例項化出來的物件,也就是Emp1生產出來的物件(類似工廠);

(2)Emp.prototype原型物件放置公有屬性和公有方法!!!!!!!!!這些公有(注意是公有)屬性和方法可以被用來繼承;

(3)emp1,emp2在被new出來時,就會自動繼承Emp.prototype中的公有屬性和公有方法,所以原型鏈如上圖;

(4)new出來的物件以及建構函式還有原型物件組成了一整套,一個完整的小塊兒。原型鏈就是這樣的一個個小塊組成的;

(5)原型物件本身也有原型,也有一個__proto__屬性,這樣形成的逐級引用關係,就是原型鏈。

//要繼承的東西在Emp.prototype那裡,所以emp1和emp2自然而然繼承自Emp.prototype
//prototype:原型