Описание
Предположим, у нас есть переменная, которая является объектом (и даже может иметь любой тип данных). Однако мы не знаем его формы и значений , что означает, что мы не знаем, есть ли у него какое-либо свойство ( собственное или унаследованное ), и тогда, конечно, мы не знаем свойств его свойств и так далее ...
Пример
Предположим, у нас есть переменная X, но мы не знаем ' Я ничего об этом не знаю. Хотя на самом деле:
const X = {
name: 'Bob', // string
age: 25, // number
hobbies: ['baseball', 'swimming', 'shopping', ...], // array
grades: { // nested object
Math: {
Max: 90,
Min: 60, // just an example, can be more complicated
Avg: 78
},
Art: {
Max: 100,
Min: 50,
Avg: 66
},
...
},
contact: { // functions
clickToEmail: () => { ..., doSomething(...)},
clicktoCall: function callPhone({param1, param2, ...}) { ..., doSomething(...)}
},
// And maybe more nested complicated data structure, but it doesn't matter as long as there is a
// way to find out on each level, we can just do an iteration till termination.
}
Вопрос
В идеальном мире мы хотели бы полностью воспроизвести этот объект, что означает, например, узнайте все его вложенные свойства с именами и значениями свойств, и, например, если некоторые вложенные свойства являются функциями, узнайте также их все параметры (имена не имеет значение), и даже узнать функцию детали реализации (возможно?).
Думаю, могут быть какие-то редко используемые встроенные методы (> ES6) чтобы помочь нам решить эту проблему?