jiin ===hasOwbPreperty() ====propertyIsEnumerable()
包含=true ,不包含=false
in 判断属性是否在对象内(包含自身属性和继承属性)
eg
var o = {x:1};
"x" in o; //true
"y" in o; //false
"toString" in o; //true
//注,一般情况下,可以用 !==来代替 in,当o = {x:undefined};时,不可取代in
var o = {x:1};
o.x !== undefined; //true
o.y !== undefined; //true
o.toString !== undefined; //true
hasOwnPreperty() 判断是否为自身属性(不包含继承)
var o = {x:1};
o.hasOwnPreperty("x"); //true
o.hasOwnPreperty("y") //false
o.hasOwnPreperty("toString"); //false 继承属性
propertyIsEnumerable() 判断自有属性且枚举
var o = inherit({y:1});,
o.x = 1;
o.propertyEnumerable("x"); //true
o.propertyEnumerable("y"); //false y属性是继承自{y:1},o自身只有x属性
Object.prototype.propertyEnumerable("toString"); //false 不可枚举