什麼是JavaScript中的不可列舉屬性,如何建立它?


不可列舉屬性

物件可以擁有在使用**Object.keys()**或**for...in**迴圈遍歷特定物件時不會顯示的屬性。這些型別的屬性稱為**不可列舉**屬性。

建立不可列舉屬性

要建立不可列舉屬性,我們必須使用**Object.defineProperty()**方法。這是一種建立物件**不可列舉**屬性的特殊方法。

在下面的示例中,name、age和country三個屬性是正常建立的,而名為“salary”的屬性是使用**Object.defineProperty()**方法建立的,名為enumerable的鍵被賦值為**false**。當使用Object.keys()迭代物件“person”時,name、age和country屬性會顯示出來,而屬性“salary”則不會顯示。由於salary屬性無法顯示,因此它被稱為不可列舉屬性。這就是建立不可列舉屬性的方法。

**Object.defineProperty()**還可以讓我們建立只讀屬性,如下所示,我們無法修改person物件的salary值。要使salary屬性可列舉,請將名為**enumerable**的**鍵**賦值為**true**。

示例

線上演示

<html>
<body>
<script>
   var person = {
      name: 'gopal'
   };
   person.age = '21';
   person['country'] = 'India';
   Object.defineProperty(person, 'salary',{
      value : '80,000$',
      enumerable: false
   })
   document.write(Object.keys(person));
</script>
</body>
</html>

輸出
name,age,country

更新於:2019年7月30日

2K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.