我没有读到这是可能的,但凭直觉,我测试了是否可以使用对象作为关联数组中的索引。像这样:
var obj = Object(),
arr = Array();
arr[ obj ] = "things";
console.log( arr[obj] );
它将“事物”记录到控制台。这对我来说似乎具有惊人的灵 active ,我想用它来保存有关节点的信息。
然而,它感觉有点“不对劲”,好像它太灵活了。使用此功能是否有任何我应该注意的低效或警告?
最佳答案
当对象用作属性名称时,该对象将被字符串化 - 所有对象属性都是字符串!这意味着它也失去了自己的身份,不再是唯一的标识符。
var obj = {};
var key = {};
obj[key] = "things"; // create a property with the name String(key)
obj["[object Object]"] // "things"
关于javascript - 使用对象作为数组索引有什么缺点(如果有的话)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24712625/