关注程序员耳东,编程转码真轻松
考点:原型链、递归
防杠指南:本文不适用于资深大佬,若喷必回
这篇笔记聊聊如何手动实现JavaScript里面的instanceOf运算符,对,它不是方法而是一个运算符
instanceOf运算符我们经常用来判断一个对象是否为某个构造函数的实例,比如下面这个用法:

它的原理其实很简答粗暴,就是检查构造函数的 prototype 属性是否出现在这个实例对象的原型链上
比如说上面这个例子,如果用一张图来画出原型链的关系,是这样的:

那么我们实现起来就很简单了,只需要顺着实例对象的原型链一直往上找,并且比对构造函数是否在原型链上就行了
但是这里面需要注意一个问题,原型链的顶点是null,需要做判空处理,代码如下:

这个手写题还是比较简单的,主要是考察了原型链的知识和递归