有如下代码:
const util = require('util');
function A() {}
let obj = {
key: new A()
};
let copy = structuredClone(obj);
console.log(util.isDeepStrictEqual(obj, copy));
我希望在控制台中得到 true,但我得到 false。可能是什么原因?
有如下代码:
const util = require('util');
function A() {}
let obj = {
key: new A()
};
let copy = structuredClone(obj);
console.log(util.isDeepStrictEqual(obj, copy));
我希望在控制台中得到 true,但我得到 false。可能是什么原因?
因为克隆并不保存原型,而是
isDeepStrictEqual进行比较。在克隆中,
copy.key它是类型为 的对象Object,而不是A。https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm#things_that_dont_work_with_structural_clone
https://nodejs.org/api/assert.html#assertdeepstrictequalactual-expected-message