我正在创建类坐标的 4 个实例。接下来,我将通过 setter 更改其中一个值。
class Coordinates {
constructor(lat, lng) {
this._lat = lat;
this._lng = lng;
}
get lat() { return this._lat; }
get lng() { return this._lng; }
set lat(newLat) { this._lat = newLat; }
set lng(newLng) { this._lng = newLng; }
}
let points = [];
for (let p = 0; p < 4; p++) {
const point = new Coordinates(p, p);
points.push(point);
}
console.log(points); // Shows the 55, although the setter wasn't executed
points[1].lat = 55;
console.log(points); // Shows the 55 (as expected)
第一个 console.log 显示 0/0、55/1、2/2、3/3。我实际上预期的是 0/0、1/1、2/2、3/3,因为我没有执行 setter。正如预期的那样,第二条日志显示 0/0、55/1、2/2、3/3。有人可以帮我理解吗?