前端面试 JavaScript— 能不能手动实现一下 instanceof 的功能?
Posted aiguangyuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端面试 JavaScript— 能不能手动实现一下 instanceof 的功能?相关的知识,希望对你有一定的参考价值。
核心:原型链的向上查找。
function myInstanceOf(left, right) {
// 基本数据类型直接返回false
if (typeof left !== 'object' || left === null) return false;
// getProtypeOf是Object对象自带的一个方法,能够拿到参数的原型对象
let proto = Object.getPrototypeOf(left);
while (true) {
// 查找到尽头,还没找到
if (proto == null) return false;
// 找到相同的原型对象
if (proto == right.prototype) return true;
proto = Object.getPrototypeOf(proto);
}
}
测试:
console.log(myInstanceOf("100", String)); // false
console.log(myInstanceOf(new String("100"), String)); // true
以上是关于前端面试 JavaScript— 能不能手动实现一下 instanceof 的功能?的主要内容,如果未能解决你的问题,请参考以下文章