Можно ли будет узнать класс и модуль объекта в ecmascript-harmony

При чтении спецификации ecmascript-harmony я ничего не вижу о проверке экземпляров/объектов в отношении получения информации об их классе и модуле. Что я хочу сделать, так это иметь возможность проверить объект javascript (это экземпляр класса гармонии es6) и выяснить:

  • имя класса, из которого он был создан
  • имя модуля, в котором был определен класс
  • имя возможных суперклассов и их модулей

Кто-нибудь знает, будет ли это возможно в es6?

Если нет, есть ли причина, по которой это было бы невозможно или предпочтительнее?

Я могу подумать о возможной проблеме с тем, что классы не так «привязаны» к своему модулю, как классы к пакетам на других языках, например Java. т.е. что произойдет, если ClassA определен в ModuleA, а ModuleB импортирует ClassA для последующего реэкспорта?


person Erik    schedule 09.10.2013    source источник
comment
Эта информация (в ее нынешнем виде), скорее всего, находится в текущий черновик, раздел 14.5 редактировать может быть легче читать это (но оно больше не обновляется)   -  person Paul S.    schedule 09.10.2013


Ответы (1)


узнать имя класса, из которого он был создан

Да. Вы можете получить доступ к .constructor.name в ES6.

узнать название возможных суперклассов

Да. Вы можете получить доступ к суперклассам через цепочку прототипов.

узнать имя модуля, в котором был определен класс

Нет, это невозможно. Отладчик может найти исходный файл, в котором был определен класс, если движок поддерживает это, а код — нет. Модули и классы не так статичны, как вы думаете, и они, конечно же, не являются пространствами имен, так что в любом случае это бесполезно.

person Bergi    schedule 24.08.2016