1

有人可以向我解释为什么以下是正确的:

let foo = { 
    A: [ 1, 2 ] 
}
let bar = {
   "A": {
      "0": "1",
      "1": "2"
   }
}
assert.deepEqual(foo, bar);
4

1 回答 1

2

正如文档所说:

只考虑可枚举的“自己的”属性。该assert.deepEqual()实现不测试[[Prototype]]对象或可枚举自己的Symbol属性。对于此类检查,请考虑assert.deepStrictEqual()改用。

assert.deepStrictEqual()函数也会检查原型,并且

assert.deepStrictEqual(foo, bar);

将返回假。

于 2018-01-31T16:20:06.130 回答