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:原型