什么是原型?
每个function对象都有原型属性,原型是构造函数的公共祖先,构造函数中的对象,可以继承原型中的属性和方法,原型也是一个对象。
1 Person(name, age){ 2 this.name = name, 3 this.age = age 4 } 5 Person.prototype.height = 170 6 7 person = new Person('xiao', 18) 8 9 person.name // 'xiao' 10 person.age // 18 11 person.height // 170
实例对象 person 中有 __proto__ 原型属性,他指向实例原型 Person.prototype , 实例原型也是一个对象,也有 __proto__ 原型属性,指向上一级实例原型,由此,一直查找到最顶端 Object.prototype, Object.prototype.__proto__ 为 null