js中的instanceof操作符用来判断某个对象是否是某个构造函数的实例,使用方法为obj instanceof fun
,左侧是一个对象,右侧是一个构造函数,如果该对象是构造函数的实例(含继承),则返回true,否则返回false。
下面我们来实现一下instanceof:
function instance_of(l, r){
// l代表操作符左侧的对象,r代表操作符右侧的构造函数
while(l.__proto__ !== null){
if(l.__proto__ === r.prototype){
return true;
}
l = l.__proto__;
}
return false;
}