js类型检测的方式
typeof //检测基本数据类型,根据类型的二进制编码判断
instanceof //检测对象是否属于类
constructor //检测对象的构造函数
Object.prototype.toString.call() //检测对象的类型信息
typeof null //object 二进制编码和对象一样
最准确的方式是
Object.prototype.toString.call
instanceof的实现
function instance_of(instance,obj){
let objproto=obj.prototype, instanceproto=Object.getPrototypeOf(instance);//instance__proto__
while(true){
if(instanceproto==null){
return false;
}
if(instanceproto==objproto){
return true;
}
instanceproto=Object.getPrototypeOf(instanceproto);
}
}