immutablejs具有可修改的嵌套属性yay或nay?

时间:2016-10-19 17:01:00

标签: functional-programming immutability record immutable.js

在下面我可以编辑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是否有意义?

0 个答案:

没有答案