无法使用 "for...in" 循环为对象的属性赋值
Can't assign values to properties of object with a "for...in" loop
这是我的对象:
var cornersAbs = {
topLeftCorner: { x: center.x + orin.corners.topLeft.x, y: center.y + orin.corners.topLeft.y, OOB: false },
topRightCorner: { x: center.x + orin.corners.topRight.x, y: center.y + orin.corners.topRight.y, OOB: false },
bottomLeftCorner: { x: center.x + orin.corners.bottomLeft.x, y: center.y + orin.corners.bottomLeft.y, OOB: false },
bottomRightCorner:{ x: center.x + orin.corners.bottomRight.x, y: center.y + orin.corners.bottomRight.y, OOB: false }
}
还有我的循环
for (var corner in cornersAbs) {
corner.OOB = corner.x < 0 | corner.y < 0 | corner.x > canvas.width | corner.y > canvas.height;
}
似乎没有为 corner.OOB 属性分配任何值。
似乎没有任何帮助,即使我这样写循环:
for (var corner in cornersAbs) {
cornersAbs.corner.OOB = cornersAbs.corner.x < 0 | cornersAbs.corner.y < 0 | cornersAbs.corner.x > canvas.width | cornersAbs.corner.y > canvas.height;
}
(我尝试这样写,因为每次迭代的 console.log(corner) 会打印 "topLeftCorner"、"topRightCorner" 等,而不是 "cornersAbs.topLeftCorner," 等。写作然而,这样的循环给我一个错误,说 cornersAbs.corner 是未定义的。)
使用括号表示法也无济于事。
当我打印任何 corner.OOB 的值时,控制台打印 "false" (我将每个 corner.OOB 初始化为的值)或 "undefined."
我已经测试了我读入 corner.x 和 corner.y 的位置,它们工作正常。
您想做的事情:
cornersAbs[corner]=...
访问您正在查看的'corner'。
要查看子 属性,您可以使用 cornerAbs[corner].prop
,它索引角所指的 属性 并查看其中的 prop
。
另一方面,cornerAbs.corner
等同于cornerAbs["corner"]
,这不是你想要的。
这是我的对象:
var cornersAbs = {
topLeftCorner: { x: center.x + orin.corners.topLeft.x, y: center.y + orin.corners.topLeft.y, OOB: false },
topRightCorner: { x: center.x + orin.corners.topRight.x, y: center.y + orin.corners.topRight.y, OOB: false },
bottomLeftCorner: { x: center.x + orin.corners.bottomLeft.x, y: center.y + orin.corners.bottomLeft.y, OOB: false },
bottomRightCorner:{ x: center.x + orin.corners.bottomRight.x, y: center.y + orin.corners.bottomRight.y, OOB: false }
}
还有我的循环
for (var corner in cornersAbs) {
corner.OOB = corner.x < 0 | corner.y < 0 | corner.x > canvas.width | corner.y > canvas.height;
}
似乎没有为 corner.OOB 属性分配任何值。
似乎没有任何帮助,即使我这样写循环:
for (var corner in cornersAbs) {
cornersAbs.corner.OOB = cornersAbs.corner.x < 0 | cornersAbs.corner.y < 0 | cornersAbs.corner.x > canvas.width | cornersAbs.corner.y > canvas.height;
}
(我尝试这样写,因为每次迭代的 console.log(corner) 会打印 "topLeftCorner"、"topRightCorner" 等,而不是 "cornersAbs.topLeftCorner," 等。写作然而,这样的循环给我一个错误,说 cornersAbs.corner 是未定义的。)
使用括号表示法也无济于事。
当我打印任何 corner.OOB 的值时,控制台打印 "false" (我将每个 corner.OOB 初始化为的值)或 "undefined."
我已经测试了我读入 corner.x 和 corner.y 的位置,它们工作正常。
您想做的事情:
cornersAbs[corner]=...
访问您正在查看的'corner'。
要查看子 属性,您可以使用 cornerAbs[corner].prop
,它索引角所指的 属性 并查看其中的 prop
。
另一方面,cornerAbs.corner
等同于cornerAbs["corner"]
,这不是你想要的。