首先是对原型链的定义:
普通构造函数的原型 继承自 顶级构造函数的原型
实例对象找原型,优先自己,没有找上级.
这里先定义一个构造函数 Student
function Student(name, age) {
this.name = name
this.age = age
}
再说说prototype
每个函数都有一个 prototype 属性,每一个对象都会关联的一个属性,而这里所说的原型链就是关于原型对象的继承,原型函数获取方式,以上面Student为例
console.log(Student.prototype) // 查看函数的原型对象
结果如图: ,即是构造函数Student本身
创建一个实例后,他们之间满足原型三角关系:如图所示
这里就有一个概念,构造函数时父亲,原型对象是母亲,而实例化就是孩子
实例化对象.__proto__ 表示找孩子的母亲,即实例化对象的上级原型函数
let stu = new Student('bobo', 1