0

例如:我有

var layout = {
    "cursor":{"left": 0, "top":0}
}

我想做类似的事情

var curX = layout.cursor.left;

当使用别名curX并更改curX的值时,光标中留下的值也会改变?

或者更进一步,

有对光标的引用,比如

nodes = [
    {name: 1, children: referenceTo2}
    {name: 2, children: null}
]

在这种情况下,当我们改变 node[1] 时,node[0] 的 children 中的值也会改变。

提前致谢。

4

2 回答 2

1

如果children是一个对象(例如你的cursor),它是通过引用保存的,所以你可以像这样引用它:

var cursor = { left:0, top:0 };

var nodes = [
    { name: 1, children: cursor },
    { name: 2, children: cursor }
];

nodes[0].children.left = 10;
nodes[1].children.left; //is 10

但是如果 children 是一个字符串,那么这是一个原始的并且你有点不走运。你可以对 setter 和 ES5 做一些花哨的事情,但这对于你想要做的事情来说可能有点过头了。

于 2012-09-06T18:19:01.717 回答
0

不,您不能创建对值的引用。JavaScript 对象是引用类型,因此您可以引用layout.cursor,但不能引用layout.cursor.left.

于 2012-09-06T18:03:54.757 回答