Хотя свойство или метод могут быть предоставлены в оверлее Elemental2, как вы можете проверить, действительно ли оно определено в базовом объекте JS?
Класс DomGlobal
имеет метод hasOwnProperty()
, который, кажется, делает то, что я хочу:
// WORKS
if (DomGlobal.hasOwnProperty("console")) {
DomGlobal.console.log(object);
}
Но как я могу проверить существование методов на самом объекте console
? Я хотел бы иметь возможность сделать что-то вроде этого:
// DOESN'T WORK
if (DomGlobal.console.hasOwnProperty("warn")) {
DomGlobal.console.warn(object);
}
Не работает, потому что hasOwnProperty()
не определен в оверлее console
.
Что я должен делать вместо этого? Нужно ли мне определять свое собственное наложение или приведение к наложению, которое включает метод?
Это правильно?
Js.<JsObject>cast(DomGlobal.console).hasOwnProperty("warn")
Кажется, немного глотка. Существуют ли стандартные утилиты, позволяющие сделать это более лаконично, или я должен написать свою собственную?