在下面我可以编辑map
的属性dungeon
,这是不可变的记录类型。如果不可变的js不能使更深层次的嵌套objs免于被改变,那么在定义如下结构时是否有任何意义呢?
const DungeonObj = Immutable.Record({
map : [1,2,3]
});
class Dungeon {
static someFunc(map) {
map[0] = 'changed';
return map;
}
}
let dungeon = new DungeonObj();
console.log(Dungeon.someFunc(dungeon.map));
console.log(dungeon.map);
这将打印:
["changed", 2, 3]
["changed", 2, 3]
我应该将map
定义为列表吗?深层嵌套的不可变数据类型在Record
内的List
内是否Map
是否有意义?