instanceof主要用于判断R是否为L的父类,R表示instanceof右侧构造函数,L表示instanceof左侧需要对比的对象实例。instanceof的原理是比较L的原型链上是否有R的原型对象,如果存在,则返回true,否则返回false。可以用以下代码进行表示
function instanceOf(L, R) {
R = R.prototype
L = L.__proto__
while (true) {
if (L === null) {
return false
}
if (L === R) {
return true
}
L = L.__proto__
}
}