Есть функция для преобразования коллекции в массив:
function selectAll(selector) {
return Array.prototype.slice.call(document.querySelectorAll(selector));
}
Я хочу, чтобы в качестве аргумента она могла принимать как обычный css-селектор в виде строки (напр.,
".my-element"
), так и объект (напр.,
document.querySelectorAll(".my-element")
).
В связи с этим возникает вопрос, как правильно прописать необходимые условия. Приемлем ли такой вариант?
function selectAll(element) {
if (typeof element === 'string') {
return Array.prototype.slice.call(document.querySelectorAll(element));
} else if (element instanceof HTMLCollection) { // <--
return Array.prototype.slice.call(element);
} else {
console.log('An invalid argument');
}
}