【发布时间】:2018-10-05 03:02:46
【问题描述】:
我创建了一个a merging library,它递归地合并对象。有时在中间会有一个实际上是特殊类的对象(如 Firestore 的 Timestamp)。
在我的合并函数中,我检查某物是否是一个对象:
function isObject (payload) {
const getType = Object.prototype.toString.call(payload).slice(8, -1)
return getType === 'Object'
}
但是,通过此检查,一些具有特殊原型的特殊类仍被视为常规 JavaScript 对象。
我的问题:
对象会失去其特殊的类原型,因为我只通过非原型值递归合并。
我的问题:
我怎样才能改变上面的函数,不仅检查它是否是一个 JavaScript 对象,而且检查它是否是一个常规 JavaScript 对象?
基本上我只想在isObject(obj) 上返回true,如果obj 是这样的对象:{} 或任何道具。
但是一旦原型不同(因此它是一个特殊的类),那么我想在isObject(obj) 上返回false
【问题讨论】:
标签: javascript class object prototype proto