Untuk properti sendiri:
var loan = { amount: 150 };
if(Object.prototype.hasOwnProperty.call(loan, "amount"))
{
//will execute
}
Catatan: menggunakan Object.prototype.hasOwnProperty lebih baik daripada pinjaman.hasOwnProperty (..), dalam kasus kustom hasOwnProperty didefinisikan dalam rantai prototipe (yang tidak terjadi di sini), seperti
var foo = {
hasOwnProperty: function() {
return false;
},
bar: 'Here be dragons'
};
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty
Untuk menyertakan properti yang diwarisi dalam temuan, gunakan operator in : (tetapi Anda harus menempatkan objek di sisi kanan 'in', nilai primitif akan melempar kesalahan, misalnya 'panjang' di 'rumah' akan melempar kesalahan, tetapi 'panjang' di String baru ('rumah') tidak akan)
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
Catatan: Seseorang mungkin tergoda untuk menggunakan typeof dan [] accessor properti sebagai kode berikut yang tidak berfungsi selalu ...
var loan = { amount: 150 };
loan.installment = undefined;
if("installment" in loan) // correct
{
// will execute
}
if(typeof loan["installment"] !== "undefined") // incorrect
{
// will not execute
}
hasOwnProperty
metode ini ditimpa, Anda dapat mengandalkannyaObject.prototype.hasOwnProperty.call(object, property)
."