Có cách nào khác để tìm kiếm các đặc tính nguyên mẫu của đối tượng javascript hay không. Cho phép nói rằng tôi có như thế này.Liệt kê tất cả các thuộc tính nguyên mẫu của đối tượng Javascript
function proton() {
this.property1 = undefined;
this.property2 = undefined;
};
proton.prototype = {
sample1 : function() {
return 'something';
},
sample2 : function() {
return 'something';
}
};
var my_object = new proton();
console.log(Object.keys(my_object));
lợi nhuận [ "property1", "property2"]
console.log(Object.getOwnPropertyNames(my_object));
lợi nhuận [ "property1", "property2"]
Nhưng những gì tôi muốn in là các thuộc tính prototype của đối tượng my_object.
[ 'sample1', 'sample2']
Để cho tôi để xem các thuộc tính prototype của đối tượng đó tôi cần phải console.log (object) và từ các công cụ phát triển i có thể tra cứu cho các thuộc tính của đối tượng đó.
Nhưng vì tôi đang sử dụng thư viện của bên thứ ba như phaser.js, react.js, create.js nên tôi không biết danh sách các thuộc tính mẫu của đối tượng được tạo từ thư viện này.
Có chức năng nguyên mẫu nào của Object để liệt kê tất cả các thuộc tính prototpye của đối tượng javascript không?
Không phải là một guru JS ở đây, là có bất kỳ lý do tại sao truy cập '__proto__' và chuyển đổi nó thành một mảng là một ý tưởng tồi? ví dụ: 'var arr = Object.keys (my_object .__ proto __). map (function (key) {return my_object .__ proto __ [key]}); ' – Bassem
@BassemDy Đối với một,' .__ proto__' giống như 'Object.getPrototypeOf' nhưng không được dùng nữa và không hoạt động trong một vài trường hợp cạnh. Ngoài ra, truy cập chỉ có một cấp của chuỗi nguyên mẫu có thể không giúp bạn có được tất cả các thuộc tính. Btw, OP dường như quan tâm đến tên thuộc tính không phải là giá trị, vì vậy bạn có thể bỏ qua '.map (…)' đó – Bergi