<h4> Instanceof 的功能类似与 typeof </h4>
对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/function,你不知道它到底是一个object对象,还是数组,还是new Number等等。
nstanceof运算符的第一个变量是一个对象,暂时称为A;第二个变量一般是一个函数,暂时称为B。
Instanceof的判断队则是:沿着A的proto这条线来找,同时沿着B的prototype这条线来找,如果两条线能找到同一个引用,即同一个对象,那么就返回true。如果找到终点还未重合,则返回false。
<h3>分别举栗子</h3>
<strong> typeof 判断类型是什么,比如:</strong>
var a = 1;
var b = {};
var c = [];
function d() {
}
console.log(typeof (a));
console.log(typeof (b));
console.log(typeof (c));
console.log(typeof (d));
输出结果:
<strong>Instanceof 是判断一个对象是否为某一数据类型,举栗子:</strong>
function test() {
}
console.log(test instanceof Function);
console.log(Function instanceof test);
结果:
<h6>看了好多文档,得出结论 Instanceof 用在原型链这边会更方便。<h6>