# 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