- Mastering Immutable.js
- Adam Boduch
- 242字
- 2021-07-08 10:30:08
Passing Immutable.js collections
Another scenario for passing data to Immutable.js constructors is for passing other Immutable.js collections. For example, let's say that you have a map instance, just like the one that we created in the preceding section. You can then do the following:
const firstMap = Map({ a: 1, b: 2, c: 3 });
console.log('myMap', myMap.get('a'));
// -> myMap 1
As expected, you get a new map instance in the firstMap constant. Now let's use this first instance as the input for creating another map:
const myMap = Map(firstMap);
console.log('firstMap === myMap', firstMap === myMap);
// -> firstMap === myMap true
Wait, if Immutable.js maps are immutable, how can firstMap be the same reference as myMap? This is a trick that Immutable.js uses to avoid having to create another instance of the exact same collection. By doing this, you're not actually violating any kind of immutability constraints. The collection that is passed to Map() can't change, so creating a copy of it is wasteful.
This can be useful if you're creating a function that accepts a collection as an argument:
const myFunc = map => Map(map).toJS();
console.log('myFunc(object)', myFunc({ a: 1, b: 2, c: 3 }));
// -> myFunc(object) { a: 1, b: 2, c: 3 }
console.log('myFunc(map)', myFunc(myMap));
// -> myFunc(map) { a: 1, b: 2, c: 3 }
- TypeScript入門與實戰(zhàn)
- PaaS程序設(shè)計
- Java Web基礎(chǔ)與實例教程(第2版·微課版)
- 匯編語言程序設(shè)計(第2版)
- C語言程序設(shè)計
- OpenGL Data Visualization Cookbook
- ArcGIS for Desktop Cookbook
- PostgreSQL Developer's Guide
- MySQL數(shù)據(jù)庫教程(視頻指導(dǎo)版)
- 走近SDN/NFV
- Python Natural Language Processing
- Java Web開發(fā)任務(wù)教程
- 深度剖析ApacheDubbo核心技術(shù)內(nèi)幕
- 軟件工程實用教程 (第3版)
- Learning Predictive Analytics with R