javascript检测属性
javascript 对象可以看做属性的集合。我们可以通过三种方式来判断某个属性是否存在于某个对象中。
1.in操作符
var o={x:1} "x" in o //True :x是o的属性 "y" in o // False:y不是o的属性 "toString" in o //True 通tostring 从object继承过来的。
2.hasOwnPreperty()方法
var o={x:1} o.hasOwnPreperty("x") //True x为o的属性 0.hasOwnPreperty("y") //False y部位o的属性 o.hasOwnPreperty("toString") //True 通tostring自object继承过来的。
3.propertyIsEnumerable()为ECMAScript5支持,是hasOwnPreperty()的增强版,此方法,只有检测到自有属性且这个属性的可枚举性为true才为true
var o=inherit({y:2}); o.x=1; o.propertyIsEnumerable("x") //true o有一个可枚举的自有属性x o.propertyIsEnumerable("y") //false y是继承来的。 Object.prototype.propertyIsEnumerable("toString"); //false :不可以枚举的。
4.使用!==判断属性是否存是undefined
var o={x:1} o.x !== undefined; //true :o中有属性 o.y !== undefined; //false:o中没有属性y o.toString != undefined //true:o中继承了tostring
作者:冯际成
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利.如有问题,请与作者联系:604756218@qq.com