[英]In javascript- save variable as a reference
var foo = {prop:1};
var bar = {prop:2};
var obj = {};
obj[foo] = 'value';
console.log(obj[bar]); //'value'
It is quite confusing why obj[bar]
and obj[foo]
are same now, whereas foo
and bar
are not same. 为什么
obj[bar]
和obj[foo]
现在相同,而foo
和bar
不相同,这令人非常困惑。
because 因为
obj[foo]='value';
is the same as 是相同的
obj["[object Object]"]='value';
Object keys are string so it's internally doing foo.toString()
对象键是字符串,因此它在内部执行
foo.toString()
and foo.toString() === bar.toString()
和
foo.toString() === bar.toString()
Every objects will return "[object Object]"
if used as a key (not talking about arrays, numbers, strings..) 如果用作键,则每个对象都将返回
"[object Object]"
(不是在谈论数组,数字,字符串..)
You'll need something that uniquely identify your objects, like below 您将需要一些可以唯一标识您的对象的东西,如下所示
var foo = {id:"foo", prop:1};
var bar = {id:"bar", prop:2};
var obj = {};
obj[foo.id] = 'value';
console.log(obj[bar.id]); //undefined
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.