前言
最近由于疫情影响,Sarah还没回家。
现在还在奶奶家,村里还不让我回去因为我家属于重灾区。每天要照顾奶奶炒的菜是越来越好吃了。
今天记录instanceof的用法。
instanceof运算符的原理
我们经常看到类似cat instanceof Animal
等语句,拿这个例子来讲,如果返回true就说明cat是Animal的实例,或者是祖先的实例对象。
也可以这么说,这个运算符的作用主要是检测cat的原型对象是否在Animal的原型链上面。
借用一下木易杨大佬的图
会跟着cat的proto属性去遍历原型链,寻找到和Animal.prototype相等的原型对象就返回true。这个例子中遍历了两次后返回true。
instanceof的实现
现在实现一个instanceof
实现:
var new_instanceof=function(leftvalue, rightvalue) {
leftvalue=leftvalue.__proto__;
rightvalue=rightvalue.prototype;