在CDP中,例如,当执行Debugger.evaluateOnCallFrame以评估某个对象时,响应将包含一个objectId
属性,其外观类似于{injectedScriptId: 1, id: 413}
。 injectedScriptId
永远不会改变(至少我从未观察到它改变过)。 id
道具似乎是内存中唯一的对象ID。
相关的问题(甚至更重要,但只是寻求确认):id
中的objectId
是整个程序/过程中对象的唯一标识符吗?我可以依靠它来构建变量的序列化,无循环引用的字符串表示形式吗?
那么injectedScriptId
的目的是什么,InjectedScript
是什么?
答案 0 :(得分:0)
这是内部实施细节,因此您不应依赖它 并且它可能随时更改而不会发出警告,或者无法正常运行 始终如此。
注入的脚本是我们注入JavaScript的内部内容 执行上下文来管理远程对象和其他事物。那是 为什么他们有单独的ID计数器。
因此,内部ID不是唯一的。使用字符串。