【发布时间】:2011-05-17 08:41:41
【问题描述】:
当我需要通过类似于 С++ 对象指针数组的指针来更新对象时,我在 JavaScript 中遇到了这种情况
我的问题的示例代码:
var foo = new Array();
var bar = function(){
this.test = 1;
foo.push(this); // push an object (or a copy of object?) but not pointer
};
var barInst = new bar(); // create new instance
// foo[0].test equals 1
barInst.test = 2;
// now barInst.test equals 2 but
// foo[0].test still equals 1 but 2 is needed
那么,我该如何解决呢?我应该使用回调或类似的东西,还是有一种简单的方法可以帮助我避免复制对象而不是将原始指针推入数组?
【问题讨论】:
-
你不是说
barInst.test = 2吗?bar是构造函数,而不是对象。那就是foo[0]不等于bar... -
哦,对不起。是的,我的意思是 barInst.test 而不是 bar.test
-
在这种情况下,您的代码应该可以工作。可以?见:jsfiddle.net/p6LQh
-
哦.. 是的,它可以工作.. 而且我查看了原始来源并发现了一个错误,这不再是问题了。两个代码 sn-ps(原始代码和 davin 的代码)都在工作。非常感谢您的帮助!
标签: javascript arrays pointers object