在 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}
廣告