我正在尝试创建一个将字符串映射到变量的数组.似乎数组存储变量的当前值,而不是存储对变量的引用.
var name = "foo";
var array = [];
array["reference"] = name;
name = "bar";
// Still returns "foo" when I'd like it to return "bar."
array["reference"];
Run Code Online (Sandbox Code Playgroud)
有没有办法让数组引用变量?
Lar*_*erg 11
将对象放入数组中:
var name = {};
name.title = "foo";
var array = [];
array["reference"] = name;
name.title = "bar";
// now returns "bar"
array["reference"].title;
Run Code Online (Sandbox Code Playgroud)
你不能.
Javascript 总是 按值传递.一切都是一个对象; var存储指针,因此它通过指针的值传递.
如果您name = "bar"应该在函数内部,则需要传入整个数组.然后,该函数需要使用它来更改它array["reference"] = "bar".
顺便说一下,[]是一个数组文字.{}是一个对象文字.这array["reference"]是因为Array也是一个对象,但是数组应该由基于0的索引访问.您可能想要使用{}.
而且foo["bar"]相当于foo.bar.如果密钥可以是动态的,则更长的语法更有用,例如,foo[bar]与foo.bar完全不同(或者如果你想使用像Google的Closure Compiler这样的最小化器).
尝试将对象推到数组中并更改其中的值。
var ar = [];
var obj = {value: 10};
ar[ar.length] = obj;
obj.value = 12;
alert(ar[0].value);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18261 次 |
| 最近记录: |