Как найти все «связанные» объекты (прототипы, свойства, ...) в JavaScript - PullRequest
0 голосов
/ 17 января 2019

Я хочу создать график, визуализирующий отношения между объектами в JavaScript.

Это функция, которую я использую для генерации узлов и ребер графа. Я просто вызываю эту функцию для каждого заданного начального объекта (в данном случае «квадрат» и «прямоугольник»).

function addNodes(obj, parent, parent_id) {
    if (obj == null) {
    } else if (objects.includes(obj)) {
        var id = objects.indexOf(obj);
        edges.add([{id: e++, from: parent_id, to: id}]);
    } else {
        var obj_id = n++;
        if (obj instanceof Object) {
            objects[obj_id] = obj;
        }
        if (parent != null) {
            nodes.add([{id: obj_id, label: obj.toString()}]);
            edges.add([{id: e++, from: parent_id, to: obj_id}]);
        } else {
            nodes.add([{id: obj_id, label: obj.my_name}]);
        }
        if (obj instanceof Object) {
            for (var k in obj) {
                addNodes(k, obj, obj_id);
            }
            var p = Object.getPrototypeOf(obj);
            addNodes(p, obj, obj_id);
        }
    }
}

Моя программа работает и дает правдоподобные результаты: мой график , однако некоторые вещи отсутствуют по сравнению с примером (особенно объекты .prototype и прототип Function): пример график .

Есть ли способ, которым я мог бы получить доступ к этим объектам? Как я могу добраться до прототипа «Function»?

...