gpt4 book ai didi

javascript - 为什么使用对象作为键的 Javascript 哈希会覆盖另一个对象键?

转载 作者:行者123 更新时间:2023-11-28 06:55:09 25 4
gpt4 key购买 nike

function Obj() {}
var a = new Obj();
var b = new Obj();
var hash = {};
hash[a] = 1;
hash[b] = 2;
console.log(hash[a]); // 2
console.log(hash[b]); // 2
console.log(a == b); // false

我认为 hash 会使用 a 和 b 的指针地址作为键,这不是真的吗?

最佳答案

想通了。 JS 哈希使用 toString() 作为键。例如,这有效:

function Obj() {
var str = "" + Math.random();
this.toString = function() {
return str;
}
}
var a = new Obj();
var b = new Obj();
var hash = {};
hash[a] = 1;
hash[b] = 2;
console.log(hash[a]); // 1
console.log(hash[b]); // 2
console.log(a == b); // false

关于javascript - 为什么使用对象作为键的 Javascript 哈希会覆盖另一个对象键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32622537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com