JS——原型鏈(1)
阿新 • • 發佈:2019-01-22
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:原型