1.使用ES5中的Array.isArray()方法
function isArray(obj){
return Array.isArray(obj);
}
2.使用Object原生的toString()方法
function isArray(obj){
return Object.prototype.toString.call(obj) === '[object Array]';
}
对象原型方法toString会返回一个[object NativeConstructorName]格式字符串,指定了对象的原生构造函数名,一个普通对象则会返回[object Object]
同理,可以用这个方法判断是否为原生函数:
function isFunction(obj){
return Object.prototype.toString.call(obj) === '[object Function]';
}
3.对象__proto__属性指向其原型对象(取决于浏览器实现,不支持IE)
function isArray(obj){
return obj.__proto__ === Array.prototype;
}
实例如果是某个构造函数构造出来的那么 它的__proto__是指向构造函数的 prototype属性