instanceof不是根据构造函数进行判断,而是原型链

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了instanceof不是根据构造函数进行判断,而是原型链相关的知识,希望对你有一定的参考价值。

 instanceof,A instanceof B 判断B.prototype对象能否在A的原型链上找到
function foo(){}
console.log(foo.__proto__); //foo.__proto__为Function.prototype,foo.__proto__.__proto__为Object.prototype
console.log(foo instanceof foo);//false
 
function foo(){
  return [1];
}
var a=new foo();
console.log(a); //[1]
console.log(a instanceof foo);//false
 
function foo(){
  return this;
}
var a=new foo();
console.log(a); //a类型为Object
console.log(a instanceof foo);//true
 
function foo(){
  return foo;
}
var a=new foo();
console.log(a); //a类型为Function
console.log(a instanceof foo);//false

技术分享

以上是关于instanceof不是根据构造函数进行判断,而是原型链的主要内容,如果未能解决你的问题,请参考以下文章

自动实例化对象

js中判断对象是不是为数组的几种方式

JS有几种方法判断变量的类型?

instanceof关键字

javascript教程50:认识instanceof 与 原型链

根据原型链实现instanceof