JavaScript "switch" 比较对象不能按预期工作



请看一下我的代码:

const foo = {
value: new String("ABC")
}
const bar = {
value: new String("XYZ")
}
const baz = {
value: foo.value
}
switch (baz.value) {
case foo.value: {
console.log("ABC")
}
case bar.value: {
console.log("XYZ")
}
}    

预期:ABC
当前:ABCXYZ

bar.value包含另一个对象,然后foo.value
foo.value === bar.value返回 false
,那么它是如何工作的呢?

谢谢!

将中断指令放在交换机中每种情况的末尾。这应该可以完成这项工作。

正如Lain所说,break缺失了。在这种情况下,代码操作第一种情况,然后操作两种情况。

switch (baz.value) {
case foo.value: {
console.log("ABC")
break
}
case bar.value: {
console.log("XYZ")
break
} 
}

相关内容

最新更新