4.13.原型对象
js规定,每⼀个构造函数都有⼀个prototype属性,指向另⼀个对象,我们称为原型对象 使⽤场景 可以解决:构造函数封装时函数(⽅法)会多次创建,占⽤内存的问题 原型对象可以挂载函数,对象实例化不会多次创建原型对象⾥的函数,节约内存 构造函数和原型对象中this都指向 实例化的对象
4.14.constructor属性
每个原型对象⾥⾯都有个constructor属性(constructor构造函数) 作⽤:该属性指向该原型对象的构造函数 使⽤场景: 如果有多个对象的⽅法,我们可以给原型对象采取对象形式赋值 但是这样会覆盖构造函数原型对象原来的内容,这样修改后的原型对象 constructor 就不再指向当前构 造函数了 此时我们可以再修改后的原型对象中,添加⼀个constructor指向原来的构造函数
4.15.什么是__ proto __
对象都会有⼀个属性proto 指向构造函数的prototype原型对象 之所以我们对象可以使⽤构造函数prototype原型对象的⽅法,就是因为对象有 proto 的存在 __ proto __⾮标准属性 尽量不要去修改它 否则影响性能
4.16.原型链
proto属性链状结构称为原型链 原型链为对象成员的查找机制提供了⼀个⽅向,或者是⼀条路线