instanceof运算符:
用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置
语法:object instanceof constructor
参数:
object:要检测的对象.
constructor:某个构造函数
描述:
instanceof 运算符:检测 constructor.prototype 是否存在于参数 object 的原型链上。
// 定义构造函数
function A(){}
function B(){}
var o = new A();
o instanceof A; // true,因为 Object.getPrototypeOf(o) === A.prototype
o instanceof B; // false,因为 B.prototype不在o的原型链上
o instanceof Object; // true,因为Object.prototype.isPrototypeOf(o)返回true
A.prototype instanceof Object // true,同上
如果object 是constructor的孩子,返回true;否则,返回false。
案例:
JS代码:
function printArray( arr ){
for(var i in arr){
if( arr[i] instanceof Array ){
printArray( arr[i] );
}else{
document.write( arr[i] + ' ' );
}
}
}
var data = [ 1, [20,21], [[301,302],[310,311]]];
printArray( data );
输出结果:
1 20 21 301 302 310 311
本文参考:web开发文档