Как различать объект DOM и объект Object в JS? Как уверенно и кроссбраузерно различать эти объекты? Можно воспользоваться свойствами: .id==строка, .attributes==массив, но это косвенно. instanceof нечто — скорее всего, не найдётся кроссбраузерного класса. Кто знает рекомендации от стандартизаторов? Кто какими методами пользуется?
Для различения объекта DOM и объекта JavaScript можно воспользоваться следующими способами:
Свойство instanceof: можно использовать оператор instanceof для проверки принадлежности объекта к определенному классу. Например, вы можете проверить, принадлежит ли объект к классу Element (DOM элемент):if (obj instanceof Element) { // объект является DOM элементом } else { // объект не является DOM элементом }Метод Object.prototype.toString.call(): этот метод возвращает строку, представляющую внутреннее свойство класса объекта. Например, для объекта DOM элемента это будет [object HTMLDivElement]:if (Object.prototype.toString.call(obj).indexOf('HTML') > -1) { // объект является объектом DOM } else { // объект не является объектом DOM }
Оба этих метода являются кроссбраузерными и широко используются для определения типа объекта в JavaScript.
Для различения объекта DOM и объекта JavaScript можно воспользоваться следующими способами:
Свойство instanceof: можно использовать оператор instanceof для проверки принадлежности объекта к определенному классу. Например, вы можете проверить, принадлежит ли объект к классу Element (DOM элемент):if (obj instanceof Element) {// объект является DOM элементом
} else {
// объект не является DOM элементом
}Метод Object.prototype.toString.call(): этот метод возвращает строку, представляющую внутреннее свойство класса объекта. Например, для объекта DOM элемента это будет [object HTMLDivElement]:if (Object.prototype.toString.call(obj).indexOf('HTML') > -1) {
// объект является объектом DOM
} else {
// объект не является объектом DOM
}
Оба этих метода являются кроссбраузерными и широко используются для определения типа объекта в JavaScript.