สำหรับทรัพย์สินของตัวเอง:
var loan = { amount: 150 };
if(Object.prototype.hasOwnProperty.call(loan, "amount"))
{
//will execute
}
หมายเหตุ: การใช้Object.prototype.hasOwnPropertyนั้นดีกว่า loan.hasOwnProperty (.. ) ในกรณีที่กำหนดเอง hasOwnProperty ถูกกำหนดในห่วงโซ่ต้นแบบ (ซึ่งไม่ใช่กรณีที่นี่) เช่น
var foo = {
hasOwnProperty: function() {
return false;
},
bar: 'Here be dragons'
};
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty
ในการรวมคุณสมบัติที่สืบทอดมาในการค้นหาให้ใช้ตัวดำเนินการin : (แต่คุณต้องวางวัตถุที่ด้านขวาของ 'ใน' ค่าดั้งเดิมจะทำให้เกิดข้อผิดพลาดเช่น 'ความยาว' ใน 'บ้าน'จะทำให้เกิดข้อผิดพลาด แต่'ความยาว' ใน String ใหม่ ('home')จะไม่)
const yoshi = { skulk: true };
const hattori = { sneak: true };
const kuma = { creep: true };
if ("skulk" in yoshi)
console.log("Yoshi can skulk");
if (!("sneak" in yoshi))
console.log("Yoshi cannot sneak");
if (!("creep" in yoshi))
console.log("Yoshi cannot creep");
Object.setPrototypeOf(yoshi, hattori);
if ("sneak" in yoshi)
console.log("Yoshi can now sneak");
if (!("creep" in hattori))
console.log("Hattori cannot creep");
Object.setPrototypeOf(hattori, kuma);
if ("creep" in hattori)
console.log("Hattori can now creep");
if ("creep" in yoshi)
console.log("Yoshi can also creep");
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in
หมายเหตุ: อาจมีการล่อลวงให้ใช้ typeof และ [] accessor เป็นรหัสต่อไปนี้ซึ่งไม่ทำงานเสมอ ...
var loan = { amount: 150 };
loan.installment = undefined;
if("installment" in loan) // correct
{
// will execute
}
if(typeof loan["installment"] !== "undefined") // incorrect
{
// will not execute
}
hasOwnProperty
วิธีการเขียนทับคุณสามารถพึ่งพาObject.prototype.hasOwnProperty.call(object, property)
ได้"