Скажем, я хочу обнаружить поддержку уведомлений (http://notifications.spec.whatwg.org/) в библиотеке JavaScript.
Я могу использовать window.Notification !== undefined
. Но что, если пользователи библиотеки (или другой библиотеки) также имеют какой-то глобальный объект Notification
, определенный для совершенно другой цели?
С другой стороны, что, если другая библиотека является polyfill? Тогда их объект Notification
является приемлемым. Должен ли я тестировать все методы в дополнение к тестированию для глобального объекта?
Обновление:
Я заметил интересную вещь в одном уведомлениях polyfill:
ret[toString] = function() {
return 'function Notification() { [native code] }';
};
Насколько надежно полагается что-то подобное, чтобы определить, является ли он родным / polyfill объектом?