javascript 中instanceof的用法
检测某个对象是不是另一个对象的实例
function Laker(){} function Bull(){} var la = new Laker() ; alert(la instanceof Laker) ;
返回结果:true
function Laker(){} Laker.prototype = {} ; function Bull(){} var la = new Laker() ; Bull.prototype = Laker.prototype ; alert(la instanceof Bull) ;
返回结果:true
function Laker(){} Laker.prototype = {} ; function Bull(){} Bull.prototype ={paly:function(){ alert("打球") ; }} ; var bu =new Bull() ; bu.paly() ;
返回结果:“打球”
检查某实例是否属于某种类型
function Laker(){} Laker.prototype = {} ; var la = new Laker() ; alert(la instanceof Object ) ;
返回结果:true
总结:
instanceof 检测一个对象A是不是另一个对象B的实例的原理是:查看对象B的prototype指向的对象是否在对象A的[[prototype]]链上。如果在,则返回true,如果不在则返回false。不过有一个特殊的情况,当对象B的prototype为null将会报错(类似于空指针异常)。