Spring Boot использует только application.properties в src / test / resources и не переопределяет application.properties в src / java / resources

obj.constructor.name

работает в большинстве случаев в современных браузерах, несмотря на то, что Function.name официально не добавлен в стандарт до ES6. Если объект создается с помощью var obj = new MyClass(), он вернет «MyClass» в виде строки.

Он вернет «Номер» для чисел, «Массив» для массивов и «Функция» для функций и т. Д. Это кажется вполне надежным. Единственными случаями, когда он терпит неудачу, является то, что объект создается без прототипа через Object.create( null ) или объект был создан из анонимно определенной (неназванной) функции.

Возможно, obj.constructor.name более интуитивно понятный, чем typeof, и может быть инкапсулирован в функцию для обработки нечетного случая, когда constructor не определен (и для обработки нулевых ссылок).

Примечание. Еще одно преимущество этого метода он работает интуитивно через границы DOM по сравнению с непосредственным сравнением объектов-конструкторов или с использованием instanceOf. Причина, по которой вы не можете рассчитывать, - это фактически разные экземпляры функции конструктора для каждой DOM, поэтому сравнение объектов с их конструкторами не будет работать.

Примечание 2: Как ни странно , этот метод, как представляется, возвращает имя самой основной функции, используемой в цепочке прототипов, что, к сожалению, не является интуитивным. Например, если B происходит прототипом с A, и вы создаете новый экземпляр B, b, b.constructor.name возвращает «A»! Так что он чувствует себя полностью назад. Однако он отлично работает для одноуровневых прототипов и всех примитивов.

0
задан GOXR3PLUS 16 January 2019 в 12:30
поделиться