JavaScript 之 原型与原型链
2019-11-07 本文已影响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
实例与原型:
- 当读取实例的属性时,如果找不到,就会查找与对象关联的原型中的属性,如果还查不到,就去找原型的原型,一直找到最顶层为止。