概念
原型
对象中固有的
__proto__
属性,该属性指向对象的
prototype
原型属性。
原型链
当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么它就会去它的原型对象
里找这个属性,这个原型对象又会有自己的原型,于是就这样一直找下去,也就是原型链的概念。原型 链的尽头一般来说都是 Object.prototype
所以这就是我们新建的对象为什么能够使用
toString()
等 方法的原因
用途
原型的使用场景 (都是用到了原型链的 继承)
场景1:在vue项目中,我们通常会将对象公共属性放在vue原型上;或者使用插件,将其挂载到vue原型上;这都是利用原型来实现的。
比如 vant组件中的 toast 通过 this 直接调用(只能在组件内)
本质就是将:方法注册挂载到了Vue原型上 Vue.Prototype.$toast = XXX
this.$toast('提示内容') //必须在组件内使用
参考链接
原型链的使用场景
js中判断数据类型Object.prototype.toString.call()方法, instanceof方法。
instanceof 是用来 判断数据是否是某个对象的实例,返回一个布尔值。
详细内容可以查看我之前的文章:js中判断数据类型的几种实用方法
图示
记住这句话
自己画的对原型链的理解 搞懂这张图就搞懂的了原型链