HOWTO · JavaScript

JavaScript 中的 hasOwnProperty

JavaScript hasOwnProperty 以布林值判斷,此屬性專門過濾掉已定義物件的鍵。它不一定需要迭代整個物件配置,而只是檢查某個屬性的可用性。

本頁內容

我們經常看到關於 in 慣例和 hasOwnProperty 的兩難境地,但在特定情況下兩者的工作方式不同。主要概念是 in 適用於具有繼承屬性並導致 true 的物件,而 hasOwnProperty 僅對未繼承而是顯式定義的屬性返回 true。

在這裡,我們將只討論 JavaScript 中的 hasOwnProperty。

檢查 JavaScript 中物件的 hasOwnProperty

在 JavaScript 中,檢查屬性是否定義的結構是這樣的 - objectName.hasOwnProprty(property)。在這裡,一個物件可以是一個陣列,也可以是一個鍵值對。你可以檢查定向路徑。

在 JavaScript 中對陣列物件使用 hasOwnProperty

陣列從 0 開始索引,直到最後一個可用元素。因此,我們更喜歡使用索引值來呼叫陣列物件的屬性。下面的例子給出了一個清晰的思路。

程式碼片段:

var myObj = ['Liza', 'Kary', 'Blake'];

console.log(myObj.hasOwnProperty(2));
console.log(myObj.hasOwnProperty(3));

輸出:

javascript 中陣列的 hasownprop

在 JavaScript 中的 key-value 對物件上使用 hasOwnProperty

在這方面,我們將考慮一個具有鍵值(string)和屬性(任何資料型別)的字典。我們來看下面的例子:

程式碼片段:

var myObj = {
  pet : "penguine",
  age : 5,
}

console.log(myObj.hasOwnProperty("age"));
console.log(myObj.hasOwnProperty("color"));

輸出:

javascript 中 obj 的 hasownprop

如你所見,物件 myObj 只有兩個鍵 - pet 和 age。如果我們通過 hasOwnProperty 僅呼叫這兩個屬性,我們將看到控制檯結果 true。否則,我們呼叫隨機屬性 color,結果為 false。

檢查類物件的 hasOwnProperty

JavaScript ES6 有一個額外的特性 class,使用 constructor 可以定義一些動態物件。在宣告物件之後,你可以通過為它們定義值來輕鬆訪問它們。演示將清除本節的解釋。此外,對於任何自定義值,如果屬性存在於類建構函式中,你將得到答案 true;否則,假。

程式碼片段:

class pet {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
}

const pet1 = new pet('Izequel', 5);

console.log(pet1.hasOwnProperty('name'));
console.log(pet1.hasOwnProperty('color'));

javascript 中類的 obj 的 hasOwnprop