有人可以向我解释为什么以下情况属实:
let foo = {
A: [ 1, 2 ]
}
let bar = {
"A": {
"0": "1",
"1": "2"
}
}
assert.deepEqual(foo, bar);
答案 0 :(得分:2)
正如the documentation所说:
仅考虑可枚举的“自有”属性。
assert.deepEqual()
实现不会测试[[Prototype]]
个对象或可枚举的自己的Symbol
属性。对于此类检查,请考虑改为使用assert.deepStrictEqual()
。
assert.deepStrictEqual()
函数也检查原型,
assert.deepStrictEqual(foo, bar);
将返回false。