简体   繁体   English

在javascript中-将变量保存为参考

[英]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]现在相同,而foobar不相同,这令人非常困惑。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM