Computer >> Máy Tính >  >> Lập trình >> Javascript

Thuộc tính không liệt kê trong JavaScript là gì và nó có thể được tạo như thế nào?

Thuộc tính không liệt kê được

Đối tượng có thể có các thuộc tính không hiển thị khi được lặp lại qua đối tượng cụ thể bằng cách sử dụng Object.keys () hoặc cho ... trong loop. Loại thuộc tính này được gọi là không thể liệt kê thuộc tính.

Tạo thuộc tính không liệt kê được

Để tạo thuộc tính không liệt kê, chúng ta phải sử dụng Object.defineProperty () phương pháp. Đây là một phương pháp đặc biệt để tạo không thể liệt kê các thuộc tính trong một đối tượng.

Trong ví dụ sau, ba thuộc tính như tên, tuổi và quốc gia được tạo bình thường và một thuộc tính có tên "lương" được tạo bằng cách sử dụng Object.defineProperty ( ) phương thức và khóa có tên là enumerable đã được gán với false . Khi đối tượng "person" được lặp lại bằng Object.keys (), các thuộc tính như tên, tuổi và quốc gia được hiển thị trong khi thuộc tính "lương" không thể hiển thị. Vì thuộc tính lương không thể hiển thị nên nó được gọi là tài sản không liệt kê được. Đây là cách để tạo các thuộc tính không liệt kê được.

Object.defineProperty () cũng cho phép bạn tạo thuộc tính chỉ đọc như chúng ta thấy bên dưới, chúng tôi không thể sửa đổi giá trị tiền lương của một đối tượng người. Để làm cho thuộc tính lương có thể liệt kê, hãy chỉ định đúng cho key có tên có thể liệt kê .

Ví dụ

<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>

Đầu ra
name,age,country