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 }

浙公网安备 33010602011771号