我创建了一个递归合并对象的合并库。有时在中间会有一个实际上是一个特殊类的对象(如 Firestore 的时间戳)。
在我的合并函数中,我检查某物是否是对象:
function isObject (payload) {
const getType = Object.prototype.toString.call(payload).slice(8, -1)
return getType === 'Object'
}
但是,通过此检查,一些具有特殊原型的特殊类仍被视为常规 JavaScript 对象。
我的问题:
该对象将失去其特殊的类原型,因为我只通过非原型值递归合并。
我的问题:
我怎样才能改变上面的函数,不仅检查它是否是一个 JavaScript 对象,而且检查它是否是一个普通的 JavaScript 对象?
基本上我只想返回if是这样的对象:true
或任何道具。isObject(obj)
obj
{}
false
但是一旦原型不同(因此它是一个特殊的类),那么我想返回isObject(obj)