首页 > 代码库 > Testing properties

Testing properties

You can do this with the in operator, with the hasOwnProperty() and propertyIsEnumerable() methods, or simply by quering the property.

var o = { x: 1 }"x" in o;         // true: o has an own property "x""y" in o;         // false: o doesn‘t have a property "y""toString" in o;  // true: o inherits a toString property
var o = { x: 1 }o.hasOwnProperty("x");        // true: o has an own property xo.hasOwnProperty("y");        // false: o doesn‘t have a property yo.hasOwnProperty("toString"); // false: toString is an inherited property
var o = inherit({ y: 2 });o.x = 1;o.propertyIsEnumerable("x");  // true: o has an own enumerable property xo.propertyIsEnumerable("y");  // false: y is inherited, not ownObject.prototype.propertyIsEnumerable("toString"); // false: not enumerable
var o = { x: undefined }   // Property is explicitly set to undefinedo.x !== undefined          // false: property exists but is undefinedo.y !== undefined          // false: property doesn‘t even exist"x" in o                   // true: the property exists"y" in o                   // false: the property doesn‘t existsdelete o.x;                // Delete the property x"x" in o                   // false: it doesn‘t exist anymore

 

Testing properties