var myObject = { };
Object.defineProperty(
myObject,"food",
{ enumerable: true, value: '燃麵' }
);
Object.defineProperty(
myObject,"dessert",
{ enumerable: false, value: '大蛋糕' }
);
// 檢查指定 property 是否可數
console.log(myObject.propertyIsEnumerable( "dessert" )) // false
console.log(myObject) // { food: "燃麵" }
// 檢查指定 property 在不在指定 object 內
console.log("dessert" in myObject); // true
console.log(myObject.hasOwnProperty( "dessert" )); // true
// 搜尋指定 object 內的所有 property key/name
console.log(Object.keys( myObject )); // ["food"]
console.log(Object.getOwnPropertyNames( myObject )); // ["food", "dessert"]
其中的(myObject.hasOwnProperty( "dessert" )
與 Object.keys( myObject )
以及 Object.getOwnPropertyNames(myObject)
都只會檢查 myObject,不會檢查到 Object prototype 層;不同於 in
operator 會完整檢查。
祝大家健康開心~內容有出入都希望能多多提醒~感謝 ԅ(≖‿≖ԅ)