我正在开发 Safari 浏览器的扩展。我想将当前活动选项卡对象存储在数组中作为键。如何在数组中存储多个选项卡对象。
我写了以下代码。
**第一个场景:
var obj = {};
obj1=new Object();
obj2=new Object();
obj3=new Object();
obj['cTab_'+obj1] = "This is object1";
obj['cTab_'+obj2] = "This is object2";
obj['cTab_'+obj3] = "This is object3";**
问题是我得到了第三个对象值。如何获取所有对象的值。
**第二种情况:
var arr = new Array();
cTabObj1 = new Object();
arr[cTabObj1] = 'This is cTabObj1 Value';
cTabObj2 = new Object();
arr[cTabObj2] = 'This is cTabObj2 Value';
cTabObj3 = new Object();
arr[cTabObj3] = 'This is cTabObj3 Value';
alert("arr[cTabObj1] :" + arr[cTabObj1] + " arr[cTabObj2] :" + arr[cTabObj2] + " arr[cTabObj3] :" + arr[cTabObj3]);**
我也在这里得到“这是 cTabObj3 值”对于所有三个对象
提前致谢。
我想将当前活动选项卡对象存储在数组中作为键
你不能那样做。键是字符串。它们始终是字符串。
如果您查看该数组,您会发现任何对象都被转换为"[object Object]"
所以你基本上插入相同的密钥 3 次。
Use console.log(arr)
or console.dir(arr)
与 firebug 或 chrome/opera/safari 一起使用
你想要的是ES6WeakMap
.
仅Firefox6实现WeakMap
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)