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将会报错(类似于空指针异常)。