对instanceof操作符的理解

instanceof语法: 对象 instanceof 构造函数
用于检测引用类型的值,通过看构造函数的原型prototype在不在这个对象的原型链上来判断
//示例1:
//数组arr所在的原型链为 arr->Arr.prototype->Object.prototype->null ,Array的原型在这个原型链上,所以返回true
var arr = [10,20,30];
//数组原型链  arr->Arr.prototype->Object.prototype->null
console.log ( arr instanceof Array );//true

//Array原型链 Array->Function.prototype->Object.prototype->null,Array.prototype不在这个原型链上,返回false
console.log(Array instanceof Array);//false

//Function原型链  Function对象->Function.prototype->Object.prototype->null
console.log ( Function instanceof Object );//true

附上关于原型链的几句话:

  • 构造函数都有prototype属性指向自身的原型对象

  • 原型对象都有constructor指向自身的构造函数

  • 对象都有__proto__指向创建它的构造函数的原型,函数也是对象

  • 原型对象是被Object构造函数创建的

  • 函数对象是被Function构造函数创建的

  • 实例化对象是被对应的构造函数创建的

发布了9 篇原创文章 · 获赞 4 · 访问量 4134

猜你喜欢

转载自blog.csdn.net/weixin_44771007/article/details/104217408