美文网首页
JavaScript 之 原型与原型链

JavaScript 之 原型与原型链

作者: _一九九一_ | 来源:发表于2019-11-07 10:46 被阅读0次

prototype:

  • 每个函数都有一个 prototype 属性,
  • 每一个JavaScript对象(null除外)在创建的时候就会与之关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原型"继承"属性。

__ proto __:

  • 每一个JavaScript对象(除了 null )都具有的一个属性,叫__ proto __,这个属性会指向该对象的原型

constructor

  • 一个构造函数可以生成多个实例
  • 每个原型都有一个 constructor 属性指向关联的构造函数

关系:

function Person() {

}

var person = new Person();

console.log(person.constructor === Person); // true
console.log(Person.prototype.constructor === Person) // true
console.log(person.constructor === Person.prototype.constructor)   // true
console.log(person.__proto__ === Person.prototype) // true
// 获得对象的原型
console.log(Object.getPrototypeOf(person) === Person.prototype) // true
console.log(Object.prototype.__proto__ === null) // true

实例与原型:

  • 当读取实例的属性时,如果找不到,就会查找与对象关联的原型中的属性,如果还查不到,就去找原型的原型,一直找到最顶层为止。

原型 原型链 构造函数 实例关系图

关系图

相关文章

网友评论

      本文标题:JavaScript 之 原型与原型链

      本文链接:https://www.haomeiwen.com/subject/uyoybctx.html