检测对象是否有某个属性(原型链检测和对象自身检测)

1、检测对象是否有某个属性(对象自身+原型链)  typeof

var a={
     x:1,
     cal:function(z){
         return this.x+this.y+z;}
};
var b=Object.create(a,{y:{value:3}});
//对象a是对象b的原型对象,且b元素添加自身属性y,属性y的值设为3.
typeof b.x+" "+typeof b.y+" "+typeof b.cal+" "+typeof b.get;
//输出 "number number function undefined"

 

2、只检测对象本身是否有某个属性(不回溯其原型链)  hasOwnProperty()

var a={
    x:1,
    cal:function(z){
         return this.x+this.y+z;
    }
};

var b=Object.create(a,{y:{value:3}});
//对象a是对象b的原型对象,且b元素添加自身属性y,属性y的值设为3.
b.hasOwnProperty('cal')+" "+b.hasOwnProperty('x')+" "+b.hasOwnProperty('y')+b.hasOwnProperty('z');
//输出  false false true false 

 

posted on 2015-12-04 19:35  东渐  阅读(590)  评论(0编辑  收藏  举报

导航