我正在研究检测任何可以通过JSON作为存储向量安全保存和恢复的有状态变量的逻辑。
这意味着检测那些“安全”转储和恢复的类型,这很容易:
typeof)instanceof Array和^组合)typeof对象和value.__proto__.constructor.name)不过,有一种类型我很难接受。它是通过调用创建的:
var nn = new convnetjs.Net();
它来自于:net.js#L8
有趣的是,Chrome工具将其检测为"Net“对象:

如果检查上面所示的nn变量,您将看到这一点。
以下是我尝试过的:
nn instanceof Object ===真Object.getPrototypeOf(nn) -有趣的是,这公开了上面第12行链接中分配给Net.prototype的函数。好像是条线索。Object.getPrototypeOf(nn).toString() == [object Object]Object.getPrototypeOf(nn) instanceof Object ===真。这是有意义的,因为它是一个对象,包含附加到原型的自定义函数。Object.getPrototypeOf(nn).constructor.name === Object是否有人知道或有办法安全地检测到这类物体?普通对象很好,但我不想用修改过的原型覆盖对象。
发布于 2019-08-13 09:04:03
如果使用它来验证它,这是一个普通的对象,或者是一个具有自定义原型的对象:
const isPlainObject = Object.getPrototypeOf(value) === Object.getPrototypeOf({});https://stackoverflow.com/questions/57397153
复制相似问题