У меня есть созданная библиотека слияния , которая рекурсивно объединяет объекты.Иногда посередине может быть объект, который на самом деле является специальным классом (например, Timestamp из Firestore).
В своей функции слияния я проверяю, является ли что-то объектом или нет, как это:
function isObject (payload) {
const getType = Object.prototype.toString.call(payload).slice(8, -1)
return getType === 'Object'
}
Однако с помощью этой проверки некоторые специальные классы со специальными прототипами по-прежнему считаются обычными объектами JavaScript.
Моя проблема:
Объектпотеряет свой прототип специального класса, потому что я рекурсивно сливаю только значения, не относящиеся к прототипу.
Мой вопрос:
Как изменить указанную выше функцию, чтобы она не только проверяла,это объект JavaScript, но также проверьте, является ли он обычным объектом JavaScript ?
По сути, я только хочу вернуть true
на isObject(obj)
, если obj
является объектом, подобным этому: {}
или с любым реквизитом.
Но как только прототип отличается (и, следовательно, это особый класс), тогда я хочу вернуть false
на isObject(obj)