简单理解:原型是属于对象的一个属性,他们又公共祖先,可以继承祖先的属性,原型本身也是对象
一个对象 有一个祖先,这个祖先有的东西 儿子孙子 都可以继承拿去用,但是儿子孙子不能修改,如果要修改添加 要到祖先这边来修改
以下案例展示原型和原型链
Person.prototype.name = 'abc'; functon Person() { //var this = { // // __proto__:Person.prototype //本来__proto__是函数里面的隐式属性,其原型为Person.prototype,继承的name属性为'abc' //} var obj = { name : "sunny" } var person = new Person();
其实就是 person.__proto__=Person.prototype;
下面你把别的函数赋值给 person.__proto__ 和 Person.prototype的结果是一样的
Grand.prototype.LastName ="MrZhang"; function Grand() { this.car="BMW" } var grand=new Grand(); Father.prototype=grand; // 父亲的prototype 指向爷爷 function Father() { this.money="90"; } var father=new Father(); Son.prototype=father; // 儿子的prototype 指向父亲 function Son() { this.age=1; } var son=new Son();