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构造函数创建的
-
实例化对象是被对应的构造函数创建的