js类型判断

69 阅读1分钟

constructor和instanceof都可以用来判断一个实例对象是由哪个构造函数构造出来的 但instanceof相对于constructor更为可靠 在构造函数的原型对象被改写时候 instanceof依然可以通过原型链查找判断

constructor 的作用是返回实例的构造函数,即返回创建此对象的函数的引用。

instanceof 的作用是判断实例对象是否为构造函数的实例 会沿着原型链一直查找(instanceof运算符用于检测构造函数的prototype属性是否出现在 某个实例对象 的原型链上)

typeof对于数组、对象 null不能正确判断 都返回object

最靠谱的是Object.prototype.toString.call(target)

toStringObject.prototype上的一个方法, 常用方式为 Object.prototype.toString.call(target)
返回值是 [object 类型]字符串,该方法基本上能判断所有的数据类型(自定义数据类型除外)

var arr = [1, 2, 3];
arr.constructor === Array; //true  

function Person () {} 
function Car () {} 
var person = new Person() 
console.log(person instanceof Person) //true

blog.csdn.net/Lei_Jing/ar…

blog.csdn.net/weixin_4310…