我有一个更改两个参数并返回对象
的函数...
pos2pix = function (x, y) {
return {
xpx: x * cellBase * 1.5 + offsetX + x * paddingX,
ypx: 2 * S3D2N * y + (x % 2 === 0 ? S_AD : 0) + offsetY + y * paddingY
};
},
...
和一个使用此数据的函数:
...
Cell = function (x, y, ctx) {
this.x = x;
this.y = y;
this.highlighted = false;
this.xpx = 0;
this.ypx = 0;
//error here
{xpx: this.xpx, ypx: this.ypx} = pos2pix(x, y);
this.ctx = ctx;
//find neighbours
this.nbhs = findNbhs(x, y);
};
...
我想要的是使用解构赋值。我试过这些尝试:
pos2pix = function (x, y) {
return [
x * cellBase * 1.5 + offsetX + x * paddingX,
2 * S3D2N * y + (x % 2 === 0 ? S_AD : 0) + offsetY + y * paddingY
];
},
...
this.xpx = 0;
this.ypx = 0;
[this.xpx, this.ypx] = pos2pix(x, y);
这很好用。还
var coords = pos2pix(x, y);
this.x = x;
this.y = y;
this.highlighted = false;
this.xpx = coords.xpx;
this.ypx = coords.ypx;
当然可行。问题是是否可以在对象的分配中使用“this”,以及如何正确使用它。