# instanceof实现原理
# 思路
右边变量的原型存在于左边变量的原型链上
关于原型链不太懂的同学可以看一下,我的这篇文章:JS基础-函数、对象和原型、原型链的关系
# 代码:
function myInstanceOf(left, right) {
let leftValue = left.__proto__
let rightValue = right.prototype
while (true) {
if (leftValue === null) {
return false
}
if (leftValue === rightValue) {
return true
}
leftValue = leftValue.__proto__
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13