JavaScript深入之从原型到原型链

249 阅读1分钟

原文地址:github.com/mqyqingfeng…

构造函数创建对象

function Person () {
    
}
var person = new Person()
person.name = 'Kevin'
console.log(person.name) //Kevin

prototype:指向了一个对象,这个对象正是调用该构造函数而创建的实例的原型,也就是这个例子中的 person1 和 person2 的原型;

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

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

constructor:每个原型都有一个 constructor 属性指向关联的构造函数;

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

原型的原型: 原型也是一个对象,既然是对象,我们就可以用最原始的方式创建它,那就是

var obj = new Object();
obj.name = 'Kevin'
console.log(obj.name) // Kevin

关系图: