引用同一个对象
refer to same object
如何根据下面的棋盘设置位置?谢谢
let initialState = {
board: [
[-1, 1, -1, 1, -1, 1, -1, 1],
[1, -1, 1, -1, 1, -1, 1, -1],
[-1, 1, -1, 1, -1, 1, -1, 1],
[0, -1, 0, -1, 0, -1, 0, -1],
[-1, 0, -1, 0, -1, 0, -1, 0],
[2, -1, 2, -1, 2, -1, 2, -1],
[-1, 2, -1, 2, -1, 2, -1, 2],
[2, -1, 2, -1, 2, -1, 2, -1]
],
locations: calcLocations(self.board)
};
无法识别self.board...
使用新变量保存中间结果:
let board = [ -1, 1, etc ];
let initialState = {
board: board,
locations: calcLocations( board )
};
您必须使用 this
关键字,并且您必须在 {}
范围内才能发挥作用。
let initialState = {
board: [
...
],
locations: function() {
return calcLocations(this.board);
}
};
请注意,获取位置成为一个函数:initialState.locations();
既然需要用this
,又不想用函数,可以用getter。在第一次调用时,getter 生成值,并将其缓存在 this._locations
上。从现在开始 getter 将 return 缓存值。
const calcLocations = JSON.stringify;
const initialState = {
board: [
[-1, 1, -1, 1, -1, 1, -1, 1],
[1, -1, 1, -1, 1, -1, 1, -1],
[-1, 1, -1, 1, -1, 1, -1, 1],
[0, -1, 0, -1, 0, -1, 0, -1],
[-1, 0, -1, 0, -1, 0, -1, 0],
[2, -1, 2, -1, 2, -1, 2, -1],
[-1, 2, -1, 2, -1, 2, -1, 2],
[2, -1, 2, -1, 2, -1, 2, -1]
],
get locations() {
if(!this._locations) this._locations = calcLocations(this.board);
return this._locations;
}
};
console.log(initialState.locations);
如何根据下面的棋盘设置位置?谢谢
let initialState = {
board: [
[-1, 1, -1, 1, -1, 1, -1, 1],
[1, -1, 1, -1, 1, -1, 1, -1],
[-1, 1, -1, 1, -1, 1, -1, 1],
[0, -1, 0, -1, 0, -1, 0, -1],
[-1, 0, -1, 0, -1, 0, -1, 0],
[2, -1, 2, -1, 2, -1, 2, -1],
[-1, 2, -1, 2, -1, 2, -1, 2],
[2, -1, 2, -1, 2, -1, 2, -1]
],
locations: calcLocations(self.board)
};
无法识别self.board...
使用新变量保存中间结果:
let board = [ -1, 1, etc ];
let initialState = {
board: board,
locations: calcLocations( board )
};
您必须使用 this
关键字,并且您必须在 {}
范围内才能发挥作用。
let initialState = {
board: [
...
],
locations: function() {
return calcLocations(this.board);
}
};
请注意,获取位置成为一个函数:initialState.locations();
既然需要用this
,又不想用函数,可以用getter。在第一次调用时,getter 生成值,并将其缓存在 this._locations
上。从现在开始 getter 将 return 缓存值。
const calcLocations = JSON.stringify;
const initialState = {
board: [
[-1, 1, -1, 1, -1, 1, -1, 1],
[1, -1, 1, -1, 1, -1, 1, -1],
[-1, 1, -1, 1, -1, 1, -1, 1],
[0, -1, 0, -1, 0, -1, 0, -1],
[-1, 0, -1, 0, -1, 0, -1, 0],
[2, -1, 2, -1, 2, -1, 2, -1],
[-1, 2, -1, 2, -1, 2, -1, 2],
[2, -1, 2, -1, 2, -1, 2, -1]
],
get locations() {
if(!this._locations) this._locations = calcLocations(this.board);
return this._locations;
}
};
console.log(initialState.locations);