instanceof的实现

instanceof的实现

在JavaScript中,instanceof运算符用于检测指定构造函数的prototype属性是否出现在某个指定的实例对象的原型链上。在实现instanceof时需要注意其左侧的操作数必须是对象,而右侧的操作数必须是一个函数。另外,获取null的__proto__属性会导致报错,因此对null需要单独处理。

 1 function myInstanceOf(obj, constructor) {
 2     if (obj === null || typeof obj !== "object" || typeof constructor !== "function") {
 3         return false;
 4     }
 5 
 6     let pointer = obj.__proto__;
 7     while (pointer !== null) {
 8         if (pointer === constructor.prototype) {
 9             return true;
10         } else {
11             pointer = pointer.__proto__;
12         }
13     }
14 
15     return false;
16 }
posted @ 2021-04-26 15:38  曹冲字仓舒  阅读(152)  评论(0)    收藏  举报