学透原型和原型链一篇就好

72 阅读1分钟

1、介绍几个关键词

1、constructor

  • 每个原型都有一个 constructor 属性指向关联的构造函数
function Test() {

 }
 console.log(Test === Test.prototype.constructor); // true

2、prototype

  • 显式原型
  • 函数的 prototype 属性指向了一个对象,这个对象正是调用该构造函数而创建的实例的原型
function Test() {

}
Test.prototype.name = 'fhj';
var test = new Test();

3、proto

  • 隐式原型
function Test() {

}
var test = new Test();
console.log(Test.__proto__ === Test.prototype); // true

2、一个图说明它们的关系

1、查找属性时先在自身查找

2、找不到 沿着__proto__ 向上一级寻找

3、需要注意 Object.prototype = null 这就是食物链顶端 没了

4、需要注意 js继承是 对另一个对象 属性和函数的委托

5、这个连起来的链条 就是原型链

3、大功告成,撒花