在 JavaScript 物件中定義屬性時,“enumerable”(可列舉)屬性的重要性是什麼?


我們可以使用方括號表示法來定義物件的屬性。還有一種方法可以使用名為Object.defineProperty()的屬性來定義屬性。它通常需要三個引數:物件名、屬性名和屬性描述符。

語法

Object.defineProperty(object name, property name, property descriptor)

讓我們用這種方法定義一個屬性。

示例

在下面的示例中,最初,物件只有一個名為“one”的屬性。後來,又添加了一個名為“two”的屬性。現在,當我們嘗試顯示所有屬性時,只顯示了第一個屬性,而沒有顯示新增的屬性,如輸出所示。

線上演示

<html>
<body>
<script>
   var object = {one: 1};
   Object.defineProperty(
      object,
      'two', {
         value: 2
       }
   );
   document.write(JSON.stringify(object));
</script>
</body>
</html>

輸出

{"one":1}

這都是因為“enumerable”(可列舉)屬性。“enumerable”屬性必須為 true 才能在物件中定義屬性。但是,如果未宣告,“enumerable”的值為“false”。因此,要使該值為“true”,我們必須宣告“enumerable”併為其賦值“true”。

在下面的示例中,當“enumerable”被初始化並賦值為true時,所有屬性都將顯示,如輸出所示。

示例

線上演示

<html>
<body>
<script>
   var object = {one: 1};
  Object.defineProperty(
   object,
   'two', {
      value: 2,
      enumerable: true
   }
);
document.write(JSON.stringify(object));
</script>
</body>
</html>

輸出

{"one":1,"two":2}

更新於:2020年6月29日

245 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告