Trong JavaScript, chúng ta có một số cách để lấy các thuộc tính của một đối tượng, tùy thuộc vào những gì chúng ta muốn lấy.
1) Object.keys()
, trả về tất cả các thuộc tính riêng, có thể liệt kê của một đối tượng, một phương thức ECMA5.
2) một for...in
vòng lặp, trả về tất cả các thuộc tính có thể liệt kê của một đối tượng, bất kể chúng là thuộc tính riêng hay được kế thừa từ chuỗi nguyên mẫu.
3) Object.getOwnPropertyNames(obj)
trả về tất cả các thuộc tính riêng của một đối tượng, có thể liệt kê hoặc không.
Chúng tôi cũng có các phương thức như hasOwnProperty(prop)
cho phép chúng tôi kiểm tra xem một thuộc tính được kế thừa hay thực sự thuộc về đối tượng đó, và propertyIsEnumerable(prop)
như tên cho thấy, cho phép chúng tôi kiểm tra xem một thuộc tính có thể liệt kê được hay không.
Với tất cả các tùy chọn này, không có cách nào để có được thuộc tính không thể liệt kê, không thuộc sở hữu của một đối tượng, đó là điều tôi muốn làm. Có cách nào để làm điều này? Nói cách khác, bằng cách nào đó tôi có thể lấy danh sách các thuộc tính không liệt kê được kế thừa không?
Cảm ơn bạn.