Отражение в JavaScript

Я искал возможность отражения в JavaScript. У меня уже есть простой отражатель, который может перечислить членов объекта / функции, например так:

window["Foo"] = {
                "Bar": {
                    "Test": function () {
                        this.x = 32;
                        this._hello = "Hello World";
                        this._item = 123.345;

                        this.hello = function() {
                            alert("hello");
                        };

                        this.goodbye = function() {
                            alert("goodbye");
                        }
                    }
                }
            }

            $(document).ready(function () {
                var x = new Foo.Bar.Test();
                Reflect(new Foo.Bar.Test());
            });

            function Reflect(obj) {
                for (var item in obj) {
                    $("body").append(item + "(" + typeof obj[item] + ") = " + obj[item] + "<br>");
                }
            }

Результаты:

х (число) = 32

_hello (string) = Hello World

_item (число) = 123,345

привет (функция) = функция () {оповещение ("Привет"); }

до свидания (функция) = функция () {оповещение ("Прощай"); }

Следующая часть моей задачи - создать что-то, что может отражать (если возможно) имя объекта и путь к объекту.

используя этот пример: ...

var x = new Foo.Bar.Test();

Как я могу задуматьсяТестовое задание"от х? Например:

ReflectName(x); //returns "Test";

Кроме того, как я могу отразить обратно путь к х? Например:

ReflectPath(x) //returns Foo.Bar.Test

Возможно ли сделать эти две вещи, используя JavaScript? Я исследовал это, и до сих пор не удалось найти какие-либо жизнеспособные решения.

Я не хочу решения, которое требует жесткого кодирования имени и пути объекта / функции, поскольку это лишило бы смысла использование отражения.

Ответы на вопрос(3)

Ваш ответ на вопрос