js以对象为索引的关联数组 |
本文标签:对象,索引,关联数组 关于JSON对象,你可以参看wikipedia(http://zh.wikipedia.org/zh-cn/JSON),还有官方网站(http://www.json.org/json-zh.html) 。 我们常说JavaScript原生支持json,因为我们可以认为json就是对JavaScript的Object对象的灵活应用 。 通常我们使用json的方式,主要用作前后台数据交换的格式: 而在代码逻辑中更多的是用关联数组的方式 。但即使是这样我们也很少使用对象类型作为键值对的键名 。 var a= {}, b= []; a[b] = new Date(); //通过a[b]可以取得时间值 。 键名的类型可以是对象,多么美好的一件事啊!
不过有一个问题 。如果你想这么用,需要有一个条件:数据必须是动态添加的 。 测试代码如下: 复制代码 代码如下: var d = document.getElementById("hello"), obj = [1,2,3], a = {obj:"test"}; a[d] = "DOMElement"; alert(a[obj]); //undefined alert(a[d]); //DOMElement alert(a[document.getElementById("hello")]); //DOMElement a[obj] = "Array Object"; alert(a[obj]); //Array Object 其实键名都是字符串: 复制代码 代码如下: var d = document.getElementById("hello"), obj = [1,2,3], a = {obj:"test"}; alert(a["obj"]); //test var str = new String("1,2,3"); a[obj] = "Array Object"; alert(a[obj]); //Array Object alert(a[str]); //Array Object var Class1 = function(_val){ var val = _val; this.toString = function(){ return val; } } var obj2 = new Class1("1,2,3"); alert(a[obj2]);//Array Object |