我创建了一个数组。然后我向这个数组添加一个对象。我后来尝试从数组中的对象访问一个值,但它返回0.这里有什么问题?
代码:
var value;
var list = [];
// CALLED FIRST:
function setup() {
document.onmousemove = function(e) {
e.preventDefault();
value = e.pageX;
}
}
// CALLED SOMETIMES AFTER UPDATE:
function logInfo() {
var j = 0;
while (j < list.length) {
console.log(list[j].value);
j++;
}
}
// CALLED EVERY 10 MS:
function update(dt) {
var object = {
value : value;
};
list.push(input);
}
答案 0 :(得分:0)
问题是您保存了referance valueNew,这是一个数字。如果更新此引用,则不会更新object.value。您需要保存对象本身的引用,并更新它的value属性,这将更新对象本身。分配后,数字/字符串的引用未连接。
我不清楚这是用于什么以及具体如何,所以代码只是一个例子:
var objects= [];
var currentValue = 0;
function update() {
var object = {
value : currentValue
};
console.log(object.value); // LOGS CORRECT VALUE
objects.push(object);
};
document.onmousemove = function(e) {
e.preventDefault();
currentValue = e.pageX;
}
// Calling update will read currentValue,
// and push an object with the currentValue as object.value
update();
如果您想要使用当前的e.pageX动态添加对象,您可以执行以下操作:
ln -s targetfile symlink