{"id":2946,"date":"2017-12-19T10:08:42","date_gmt":"2017-12-19T02:08:42","guid":{"rendered":"http:\/\/www.daliane.com\/?p=2946"},"modified":"2017-12-19T17:20:04","modified_gmt":"2017-12-19T09:20:04","slug":"immutablejs_you_dian_ji_chang_yong_api_jie_shao","status":"publish","type":"post","link":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/immutablejs_you_dian_ji_chang_yong_api_jie_shao\/","title":{"rendered":"Immutablejs\u4f18\u70b9\u53ca\u5e38\u7528API\u4ecb\u7ecd"},"content":{"rendered":"<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\tJavaScript \u4e2d\u7684\u5bf9\u8c61\u4e00\u822c\u662f\u53ef\u53d8\u7684\uff08Mutable\uff09\uff0c\u56e0\u4e3a\u4f7f\u7528\u4e86\u5f15\u7528\u8d4b\u503c\uff0c\u65b0\u7684\u5bf9\u8c61\u7b80\u5355\u7684\u5f15\u7528\u4e86\u539f\u59cb\u5bf9\u8c61\uff0c\u6539\u53d8\u65b0\u7684\u5bf9\u8c61\u5c06\u5f71\u54cd\u5230\u539f\u59cb\u5bf9\u8c61\u3002\u5982&nbsp;foo={a: 1}; bar=foo; bar.a=2&nbsp;\u4f60\u4f1a\u53d1\u73b0\u6b64\u65f6&nbsp;foo.a&nbsp;\u4e5f\u88ab\u6539\u6210\u4e86&nbsp;2\u3002\u867d\u7136\u8fd9\u6837\u505a\u53ef\u4ee5\u8282\u7ea6\u5185\u5b58\uff0c\u4f46\u5f53\u5e94\u7528\u590d\u6742\u540e\uff0c\u8fd9\u5c31\u9020\u6210\u4e86\u975e\u5e38\u5927\u7684\u9690\u60a3\uff0cMutable \u5e26\u6765\u7684\u4f18\u70b9\u53d8\u5f97\u5f97\u4e0d\u507f\u5931\u3002\u4e3a\u4e86\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u4e00\u822c\u7684\u505a\u6cd5\u662f\u4f7f\u7528 shallowCopy\uff08\u6d45\u62f7\u8d1d\uff09\u6216 deepCopy\uff08\u6df1\u62f7\u8d1d\uff09\u6765\u907f\u514d\u88ab\u4fee\u6539\uff0c\u4f46\u8fd9\u6837\u505a\u9020\u6210\u4e86 CPU \u548c\u5185\u5b58\u7684\u6d6a\u8d39\u3002\n<\/p>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\tImmutable \u53ef\u4ee5\u5f88\u597d\u5730\u89e3\u51b3\u8fd9\u4e9b\u95ee\u9898\u3002\n<\/p>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\n<\/p>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\tmmutable Data \u5c31\u662f\u4e00\u65e6\u521b\u5efa\uff0c\u5c31\u4e0d\u80fd\u518d\u88ab\u66f4\u6539\u7684\u6570\u636e\u3002\u5bf9 Immutable \u5bf9\u8c61\u7684\u4efb\u4f55\u4fee\u6539\u6216\u6dfb\u52a0\u5220\u9664\u64cd\u4f5c\u90fd\u4f1a\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684 Immutable \u5bf9\u8c61\u3002Immutable \u5b9e\u73b0\u7684\u539f\u7406\u662f&nbsp;<span style=\"color:#1A1A1A;font-weight:700;\">Persistent Data Structure<\/span>\uff08\u6301\u4e45\u5316\u6570\u636e\u7ed3\u6784\uff09\uff0c\u4e5f\u5c31\u662f\u4f7f\u7528\u65e7\u6570\u636e\u521b\u5efa\u65b0\u6570\u636e\u65f6\uff0c\u8981\u4fdd\u8bc1\u65e7\u6570\u636e\u540c\u65f6\u53ef\u7528\u4e14\u4e0d\u53d8\u3002\u540c\u65f6\u4e3a\u4e86\u907f\u514d deepCopy \u628a\u6240\u6709\u8282\u70b9\u90fd\u590d\u5236\u4e00\u904d\u5e26\u6765\u7684\u6027\u80fd\u635f\u8017\uff0cImmutable \u4f7f\u7528\u4e86&nbsp;<span style=\"color:#1A1A1A;font-weight:700;\">Structural Sharing<\/span>\uff08\u7ed3\u6784\u5171\u4eab\uff09\uff0c\u5373\u5982\u679c\u5bf9\u8c61\u6811\u4e2d\u4e00\u4e2a\u8282\u70b9\u53d1\u751f\u53d8\u5316\uff0c\u53ea\u4fee\u6539\u8fd9\u4e2a\u8282\u70b9\u548c\u53d7\u5b83\u5f71\u54cd\u7684\u7236\u8282\u70b9\uff0c\u5176\u5b83\u8282\u70b9\u5219\u8fdb\u884c\u5171\u4eab\u3002\u8bf7\u770b\u4e0b\u9762\u52a8\u753b\uff1a\n<\/p>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t<img decoding=\"async\" src=\"http:\/\/www.daliane.com\/wp-content\/uploads\/2017\/12\/TB1zzi_KXXXXXctXFXXbrb8OVXX-613-575.gif\" alt=\"Immutable \u539f\u7406\u52a8\u753b\" style=\"height:auto;\" \/>\n<\/p>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\n<\/p>\n<h3 id=\"1-immutable-mutable-\" style=\"color:#585A5B;font-size:1.28571rem;font-family:&quot;background-color:#FFFFFF;\">\n\t1. Immutable \u964d\u4f4e\u4e86 Mutable \u5e26\u6765\u7684\u590d\u6742\u5ea6<br \/>\n<\/h3>\n<p>\n\t\n<\/p>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\u53ef\u53d8\uff08Mutable\uff09\u6570\u636e\u8026\u5408\u4e86 Time \u548c Value \u7684\u6982\u5ff5\uff0c\u9020\u6210\u4e86\u6570\u636e\u5f88\u96be\u88ab\u56de\u6eaf\u3002\n<\/p>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\u6bd4\u5982\u4e0b\u9762\u4e00\u6bb5\u4ee3\u7801\uff1a\n<\/p>\n<pre class=\"prettyprint\"><span class=\"kwd\" style=\"color:#93C763;\">function<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> touchAndLog<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">(<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">touchFn<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">)<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">{<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> let data <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">=<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">{<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> key<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">:<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"str\" style=\"color:#EC7600;\">'value'<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">};<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> touchFn<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">(<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">data<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">);<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> console<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">log<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">(<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">data<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">key<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">);<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"com\" style=\"color:#66747B;\">\/\/ \u731c\u731c\u4f1a\u6253\u5370\u4ec0\u4e48\uff1f<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">}<\/span><\/pre>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\u5728\u4e0d\u67e5\u770b&nbsp;touchFn&nbsp;\u7684\u4ee3\u7801\u7684\u60c5\u51b5\u4e0b\uff0c\u56e0\u4e3a\u4e0d\u786e\u5b9a\u5b83\u5bf9&nbsp;data&nbsp;\u505a\u4e86\u4ec0\u4e48\uff0c\u4f60\u662f\u4e0d\u53ef\u80fd\u77e5\u9053\u4f1a\u6253\u5370\u4ec0\u4e48\uff08\u8fd9\u4e0d\u662f\u5e9f\u8bdd\u5417\uff09\u3002\u4f46\u5982\u679c&nbsp;data\u662f Immutable \u7684\u5462\uff0c\u4f60\u53ef\u4ee5\u5f88\u80af\u5b9a\u7684\u77e5\u9053\u6253\u5370\u7684\u662f&nbsp;value\u3002\n<\/p>\n<h3 id=\"2-\" style=\"color:#585A5B;font-size:1.28571rem;font-family:&quot;background-color:#FFFFFF;\">\n\t2. \u8282\u7701\u5185\u5b58<br \/>\n<\/h3>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\tImmutable.js \u4f7f\u7528\u4e86 Structure Sharing \u4f1a\u5c3d\u91cf\u590d\u7528\u5185\u5b58\uff0c\u751a\u81f3\u4ee5\u524d\u4f7f\u7528\u7684\u5bf9\u8c61\u4e5f\u53ef\u4ee5\u518d\u6b21\u88ab\u590d\u7528\u3002\u6ca1\u6709\u88ab\u5f15\u7528\u7684\u5bf9\u8c61\u4f1a\u88ab\u5783\u573e\u56de\u6536\u3002\n<\/p>\n<pre class=\"prettyprint\"><span class=\"kwd\" style=\"color:#93C763;\">import<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">{<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"typ\" style=\"color:#678CB1;\">Map<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">}<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> from <\/span><span class=\"str\" style=\"color:#EC7600;\">'immutable'<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">;<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> let a <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">=<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"typ\" style=\"color:#678CB1;\">Map<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">({<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> select<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">:<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"str\" style=\"color:#EC7600;\">'users'<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">,<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> filter<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">:<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"typ\" style=\"color:#678CB1;\">Map<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">({<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> name<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">:<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"str\" style=\"color:#EC7600;\">'Cam'<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">})<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">})<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> let b <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">=<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> a<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"kwd\" style=\"color:#93C763;\">set<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">(<\/span><span class=\"str\" style=\"color:#EC7600;\">'select'<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">,<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"str\" style=\"color:#EC7600;\">'people'<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">);<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> a <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">===<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> b<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">;<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"com\" style=\"color:#66747B;\">\/\/ false<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> a<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"kwd\" style=\"color:#93C763;\">get<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">(<\/span><span class=\"str\" style=\"color:#EC7600;\">'filter'<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">)<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">===<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> b<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"kwd\" style=\"color:#93C763;\">get<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">(<\/span><span class=\"str\" style=\"color:#EC7600;\">'filter'<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">);<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"com\" style=\"color:#66747B;\">\/\/ true<\/span><\/pre>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\u4e0a\u9762 a \u548c b \u5171\u4eab\u4e86\u6ca1\u6709\u53d8\u5316\u7684&nbsp;filter&nbsp;\u8282\u70b9\u3002\n<\/p>\n<h3 id=\"3-undo-redo-copy-paste-\" style=\"color:#585A5B;font-size:1.28571rem;font-family:&quot;background-color:#FFFFFF;\">\n\t3. Undo\/Redo\uff0cCopy\/Paste\uff0c\u751a\u81f3\u65f6\u95f4\u65c5\u884c\u8fd9\u4e9b\u529f\u80fd\u505a\u8d77\u6765\u5c0f\u83dc\u4e00\u789f<br \/>\n<\/h3>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\u56e0\u4e3a\u6bcf\u6b21\u6570\u636e\u90fd\u662f\u4e0d\u4e00\u6837\u7684\uff0c\u53ea\u8981\u628a\u8fd9\u4e9b\u6570\u636e\u653e\u5230\u4e00\u4e2a\u6570\u7ec4\u91cc\u50a8\u5b58\u8d77\u6765\uff0c\u60f3\u56de\u9000\u5230\u54ea\u91cc\u5c31\u62ff\u51fa\u5bf9\u5e94\u6570\u636e\u5373\u53ef\uff0c\u5f88\u5bb9\u6613\u5f00\u53d1\u51fa\u64a4\u9500\u91cd\u505a\u8fd9\u79cd\u529f\u80fd\u3002\n<\/p>\n<h3 id=\"4-\" style=\"color:#585A5B;font-size:1.28571rem;font-family:&quot;background-color:#FFFFFF;\">\n\t4. \u5e76\u53d1\u5b89\u5168<br \/>\n<\/h3>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\u4f20\u7edf\u7684\u5e76\u53d1\u975e\u5e38\u96be\u505a\uff0c\u56e0\u4e3a\u8981\u5904\u7406\u5404\u79cd\u6570\u636e\u4e0d\u4e00\u81f4\u95ee\u9898\uff0c\u56e0\u6b64\u300e\u806a\u660e\u4eba\u300f\u53d1\u660e\u4e86\u5404\u79cd\u9501\u6765\u89e3\u51b3\u3002\u4f46\u4f7f\u7528\u4e86 Immutable \u4e4b\u540e\uff0c\u6570\u636e\u5929\u751f\u662f\u4e0d\u53ef\u53d8\u7684\uff0c<span style=\"color:#1A1A1A;font-weight:700;\">\u5e76\u53d1\u9501\u5c31\u4e0d\u9700\u8981\u4e86<\/span>\u3002\n<\/p>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\u7136\u800c\u73b0\u5728\u5e76\u6ca1\u4ec0\u4e48\u5375\u7528\uff0c\u56e0\u4e3a JavaScript \u8fd8\u662f\u5355\u7ebf\u7a0b\u8fd0\u884c\u7684\u554a\u3002\u4f46\u672a\u6765\u53ef\u80fd\u4f1a\u52a0\u5165\uff0c\u63d0\u524d\u89e3\u51b3\u672a\u6765\u7684\u95ee\u9898\u4e0d\u4e5f\u633a\u597d\u5417\uff1f\n<\/p>\n<h3 id=\"5-\" style=\"color:#585A5B;font-size:1.28571rem;font-family:&quot;background-color:#FFFFFF;\">\n\t5. \u62e5\u62b1\u51fd\u6570\u5f0f\u7f16\u7a0b<br \/>\n<\/h3>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\tImmutable \u672c\u8eab\u5c31\u662f\u51fd\u6570\u5f0f\u7f16\u7a0b\u4e2d\u7684\u6982\u5ff5\uff0c\u7eaf\u51fd\u6570\u5f0f\u7f16\u7a0b\u6bd4\u9762\u5411\u5bf9\u8c61\u66f4\u9002\u7528\u4e8e\u524d\u7aef\u5f00\u53d1\u3002\u56e0\u4e3a\u53ea\u8981\u8f93\u5165\u4e00\u81f4\uff0c\u8f93\u51fa\u5fc5\u7136\u4e00\u81f4\uff0c\u8fd9\u6837\u5f00\u53d1\u7684\u7ec4\u4ef6\u66f4\u6613\u4e8e\u8c03\u8bd5\u548c\u7ec4\u88c5\u3002\n<\/p>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\u50cf ClojureScript\uff0cElm \u7b49\u51fd\u6570\u5f0f\u7f16\u7a0b\u8bed\u8a00\u4e2d\u7684\u6570\u636e\u7c7b\u578b\u5929\u751f\u90fd\u662f Immutable \u7684\uff0c\u8fd9\u4e5f\u662f\u4e3a\u4ec0\u4e48 ClojureScript \u57fa\u4e8e React \u7684\u6846\u67b6 &#8212; Om \u6027\u80fd\u6bd4 React \u8fd8\u8981\u597d\u7684\u539f\u56e0\u3002\n<\/p>\n<h3 id=\"-immutable-is-\" style=\"color:#585A5B;font-size:1.28571rem;font-family:&quot;background-color:#FFFFFF;\">\n\tImmutable.is<br \/>\n<\/h3>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\u4e24\u4e2a immutable \u5bf9\u8c61\u53ef\u4ee5\u4f7f\u7528&nbsp;===&nbsp;\u6765\u6bd4\u8f83\uff0c\u8fd9\u6837\u662f\u76f4\u63a5\u6bd4\u8f83\u5185\u5b58\u5730\u5740\uff0c\u6027\u80fd\u6700\u597d\u3002\u4f46\u5373\u4f7f\u4e24\u4e2a\u5bf9\u8c61\u7684\u503c\u662f\u4e00\u6837\u7684\uff0c\u4e5f\u4f1a\u8fd4\u56de&nbsp;false\uff1a\n<\/p>\n<pre class=\"prettyprint\"><span class=\"pln\" style=\"color:#F1F2F3;\">let map1 <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">=<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"typ\" style=\"color:#678CB1;\">Immutable<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"typ\" style=\"color:#678CB1;\">Map<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">({<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">a<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">:<\/span><span class=\"lit\" style=\"color:#FACD22;\">1<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">,<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> b<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">:<\/span><span class=\"lit\" style=\"color:#FACD22;\">1<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">,<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> c<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">:<\/span><span class=\"lit\" style=\"color:#FACD22;\">1<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">});<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> let map2 <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">=<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"typ\" style=\"color:#678CB1;\">Immutable<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"typ\" style=\"color:#678CB1;\">Map<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">({<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">a<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">:<\/span><span class=\"lit\" style=\"color:#FACD22;\">1<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">,<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> b<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">:<\/span><span class=\"lit\" style=\"color:#FACD22;\">1<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">,<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> c<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">:<\/span><span class=\"lit\" style=\"color:#FACD22;\">1<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">});<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> map1 <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">===<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> map2<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">;<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"com\" style=\"color:#66747B;\">\/\/ false<\/span><\/pre>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\u4e3a\u4e86\u76f4\u63a5\u6bd4\u8f83\u5bf9\u8c61\u7684\u503c\uff0cimmutable.js \u63d0\u4f9b\u4e86&nbsp;Immutable.is&nbsp;\u6765\u505a\u300e\u503c\u6bd4\u8f83\u300f\uff0c\u7ed3\u679c\u5982\u4e0b\uff1a\n<\/p>\n<pre class=\"prettyprint\"><span class=\"typ\" style=\"color:#678CB1;\">Immutable<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">is<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">(<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">map1<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">,<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> map2<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">);<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"com\" style=\"color:#66747B;\">\/\/ true<\/span><\/pre>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\tImmutable.is&nbsp;\u6bd4\u8f83\u7684\u662f\u4e24\u4e2a\u5bf9\u8c61\u7684&nbsp;hashCode&nbsp;\u6216&nbsp;valueOf\uff08\u5bf9\u4e8e JavaScript \u5bf9\u8c61\uff09\u3002\u7531\u4e8e immutable \u5185\u90e8\u4f7f\u7528\u4e86 Trie \u6570\u636e\u7ed3\u6784\u6765\u5b58\u50a8\uff0c\u53ea\u8981\u4e24\u4e2a\u5bf9\u8c61\u7684&nbsp;hashCode&nbsp;\u76f8\u7b49\uff0c\u503c\u5c31\u662f\u4e00\u6837\u7684\u3002\u8fd9\u6837\u7684\u7b97\u6cd5\u907f\u514d\u4e86\u6df1\u5ea6\u904d\u5386\u6bd4\u8f83\uff0c\u6027\u80fd\u975e\u5e38\u597d\u3002\n<\/p>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\u540e\u9762\u4f1a\u4f7f\u7528&nbsp;Immutable.is&nbsp;\u6765\u51cf\u5c11 React \u91cd\u590d\u6e32\u67d3\uff0c\u63d0\u9ad8\u6027\u80fd\u3002\n<\/p>\n<h3 id=\"cursor-\" style=\"color:#585A5B;font-size:1.28571rem;font-family:&quot;background-color:#FFFFFF;\">\n\tCursor \u7684\u6982\u5ff5<br \/>\n<\/h3>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\u8fd9\u4e2a Cursor \u548c\u6570\u636e\u5e93\u4e2d\u7684\u6e38\u6807\u662f\u5b8c\u5168\u4e0d\u540c\u7684\u6982\u5ff5\u3002\n<\/p>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\u7531\u4e8e Immutable \u6570\u636e\u4e00\u822c\u5d4c\u5957\u975e\u5e38\u6df1\uff0c\u4e3a\u4e86\u4fbf\u4e8e\u8bbf\u95ee\u6df1\u5c42\u6570\u636e\uff0cCursor \u63d0\u4f9b\u4e86\u53ef\u4ee5\u76f4\u63a5\u8bbf\u95ee\u8fd9\u4e2a\u6df1\u5c42\u6570\u636e\u7684\u5f15\u7528\u3002\n<\/p>\n<pre class=\"prettyprint\"><span class=\"kwd\" style=\"color:#93C763;\">import<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"typ\" style=\"color:#678CB1;\">Immutable<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> from <\/span><span class=\"str\" style=\"color:#EC7600;\">'immutable'<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">;<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"kwd\" style=\"color:#93C763;\">import<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"typ\" style=\"color:#678CB1;\">Cursor<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> from <\/span><span class=\"str\" style=\"color:#EC7600;\">'immutable\/contrib\/cursor'<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">;<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> let data <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">=<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"typ\" style=\"color:#678CB1;\">Immutable<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">fromJS<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">({<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> a<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">:<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">{<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> b<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">:<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">{<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> c<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">:<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"lit\" style=\"color:#FACD22;\">1<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">}<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">}<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">});<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"com\" style=\"color:#66747B;\">\/\/ \u8ba9 cursor \u6307\u5411 { c: 1 }<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> let cursor <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">=<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"typ\" style=\"color:#678CB1;\">Cursor<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">from<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">(<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">data<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">,<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">[<\/span><span class=\"str\" style=\"color:#EC7600;\">'a'<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">,<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"str\" style=\"color:#EC7600;\">'b'<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">],<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> newData <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">=&gt;<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">{<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"com\" style=\"color:#66747B;\">\/\/ \u5f53 cursor \u6216\u5176\u5b50 cursor \u6267\u884c update \u65f6\u8c03\u7528<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> console<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">log<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">(<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">newData<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">);<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">});<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> cursor<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"kwd\" style=\"color:#93C763;\">get<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">(<\/span><span class=\"str\" style=\"color:#EC7600;\">'c'<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">);<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"com\" style=\"color:#66747B;\">\/\/ 1<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> cursor <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">=<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> cursor<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">update<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">(<\/span><span class=\"str\" style=\"color:#EC7600;\">'c'<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">,<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> x <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">=&gt;<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> x <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">+<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"lit\" style=\"color:#FACD22;\">1<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">);<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> cursor<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"kwd\" style=\"color:#93C763;\">get<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">(<\/span><span class=\"str\" style=\"color:#EC7600;\">'c'<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">);<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"com\" style=\"color:#66747B;\">\/\/ 2<\/span><\/pre>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t<span style=\"color:#1A1A1A;font-weight:700;\">Immutable \u5219\u63d0\u4f9b\u4e86\u7b80\u6d01\u9ad8\u6548\u7684\u5224\u65ad\u6570\u636e\u662f\u5426\u53d8\u5316\u7684\u65b9\u6cd5<\/span>\uff0c\u53ea\u9700&nbsp;===&nbsp;\u548c&nbsp;is&nbsp;\u6bd4\u8f83\u5c31\u80fd\u77e5\u9053\u662f\u5426\u9700\u8981\u6267\u884c&nbsp;render()\uff0c\u800c\u8fd9\u4e2a<span style=\"color:#1A1A1A;font-weight:700;\">\u64cd\u4f5c\u51e0\u4e4e 0 \u6210\u672c<\/span>\uff0c\u6240\u4ee5\u53ef\u4ee5\u6781\u5927\u63d0\u9ad8\u6027\u80fd\u3002\u4fee\u6539\u540e\u7684&nbsp;shouldComponentUpdate&nbsp;\u662f\u8fd9\u6837\u7684\uff1a\n<\/p>\n<pre class=\"prettyprint\"><span class=\"kwd\" style=\"color:#93C763;\">import<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">{<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> is <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">}<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> from <\/span><span class=\"str\" style=\"color:#EC7600;\">'immutable'<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">;<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> shouldComponentUpdate<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">:<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">(<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">nextProps<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">,<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> nextState<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">)<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">=&gt;<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">{<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"kwd\" style=\"color:#93C763;\">return<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">!(<\/span><span class=\"kwd\" style=\"color:#93C763;\">this<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">props <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">===<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> nextProps <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">||<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> is<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">(<\/span><span class=\"kwd\" style=\"color:#93C763;\">this<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">props<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">,<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> nextProps<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">))<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">||<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">!(<\/span><span class=\"kwd\" style=\"color:#93C763;\">this<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">state <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">===<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> nextState <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">||<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> is<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">(<\/span><span class=\"kwd\" style=\"color:#93C763;\">this<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">.<\/span><span class=\"pln\" style=\"color:#F1F2F3;\">state<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">,<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> nextState<\/span><span class=\"pun\" style=\"color:#F1F2F3;\">));<\/span><span class=\"pln\" style=\"color:#F1F2F3;\"> <\/span><span class=\"pun\" style=\"color:#F1F2F3;\">}<\/span><\/pre>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\u4f7f\u7528 Immutable \u540e\uff0c\u5982\u4e0b\u56fe\uff0c\u5f53\u7ea2\u8272\u8282\u70b9\u7684 state \u53d8\u5316\u540e\uff0c\u4e0d\u4f1a\u518d\u6e32\u67d3\u6811\u4e2d\u7684\u6240\u6709\u8282\u70b9\uff0c\u800c\u662f\u53ea\u6e32\u67d3\u56fe\u4e2d\u7eff\u8272\u7684\u90e8\u5206\uff1a\n<\/p>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t<img decoding=\"async\" src=\"http:\/\/www.daliane.com\/wp-content\/uploads\/2017\/12\/TB1VinpKXXXXXXAXpXXZ_OdNFXX-715-324.png\" alt=\"react reconciliation\" style=\"height:auto;\" \/>\n<\/p>\n<h2 id=\"-\" style=\"color:#333333;font-size:1.42857rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\u603b\u7ed3<br \/>\n<\/h2>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\tImmutable \u53ef\u4ee5\u7ed9\u5e94\u7528\u5e26\u6765\u6781\u5927\u7684\u6027\u80fd\u63d0\u5347\uff0c\u4f46\u662f\u5426\u4f7f\u7528\u8fd8\u8981\u770b\u9879\u76ee\u60c5\u51b5\u3002\u7531\u4e8e\u4fb5\u5165\u6027\u8f83\u5f3a\uff0c\u65b0\u9879\u76ee\u5f15\u5165\u6bd4\u8f83\u5bb9\u6613\uff0c\u8001\u9879\u76ee\u8fc1\u79fb\u9700\u8981\u8bc4\u4f30\u8fc1\u79fb\u3002\u5bf9\u4e8e\u4e00\u4e9b\u63d0\u4f9b\u7ed9\u5916\u90e8\u4f7f\u7528\u7684\u516c\u5171\u7ec4\u4ef6\uff0c\u6700\u597d\u4e0d\u8981\u628a Immutable \u5bf9\u8c61\u76f4\u63a5\u66b4\u9732\u5728\u5bf9\u5916\u63a5\u53e3\u4e2d\u3002\n<\/p>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\u5982\u679c JS \u539f\u751f Immutable \u7c7b\u578b\u4f1a\u4e0d\u4f1a\u592a\u7f8e\uff0c\u88ab\u79f0\u4e3a React API \u7ec8\u7ed3\u8005\u7684 Sebastian Markb\u00e5ge \u6709\u4e00\u4e2a\u8fd9\u6837\u7684<a href=\"https:\/\/github.com\/sebmarkbage\/ecmascript-immutable-data-structures\">\u63d0\u6848<\/a>\uff0c\u80fd\u5426\u901a\u8fc7\u73b0\u5728\u8fd8\u4e0d\u786e\u5b9a\u3002\u4e0d\u8fc7\u53ef\u4ee5\u80af\u5b9a\u7684\u662f Immutable \u4f1a\u88ab\u8d8a\u6765\u8d8a\u591a\u7684\u9879\u76ee\u4f7f\u7528\u3002\n<\/p>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n\t\n<\/p>\n<p style=\"color:#585A5B;font-size:1.14286rem;font-family:&quot;background-color:#FFFFFF;\">\n<h3 id=\"\u539f\u751fjs\u8f6c\u6362\u4e3aimmutabledata\" style=\"font-size:16px;color:#393939;font-family:&quot;background-color:#FFFFFF;\">\n\t\t\u539f\u751fjs\u8f6c\u6362\u4e3aimmutableData<br \/>\n\t<\/h3>\n<\/p>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\tImmutable.fromJS([1,2]) \/\/ immutable\u7684 list\n\t<\/p>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\tImmutable.fromJS({a: 1}) \/\/ immutable\u7684 map\n\t<\/p>\n<h3 id=\"\u4eceimmutabledata-\u56de\u5230-javascript-\u5bf9\u8c61\" style=\"font-size:16px;color:#393939;font-family:&quot;background-color:#FFFFFF;\">\n\t\t\u4eceimmutableData \u56de\u5230 JavaScript \u5bf9\u8c61<br \/>\n\t<\/h3>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\timmutableData.toJS()\n\t<\/p>\n<h3 id=\"\u5224\u65ad\u4e24\u4e2aimmutable\u6570\u636e\u662f\u5426\u4e00\u81f4\" style=\"font-size:16px;color:#393939;font-family:&quot;background-color:#FFFFFF;\">\n\t\t\u5224\u65ad\u4e24\u4e2aimmutable\u6570\u636e\u662f\u5426\u4e00\u81f4<br \/>\n\t<\/h3>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\tImmutable.is(immutableA, immutableB)\n\t<\/p>\n<h3 id=\"\u5224\u65ad\u662f\u4e0d\u662fmap\u6216list\" style=\"font-size:16px;color:#393939;font-family:&quot;background-color:#FFFFFF;\">\n\t\t\u5224\u65ad\u662f\u4e0d\u662fmap\u6216List<br \/>\n\t<\/h3>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\tImmutable.Map.isMap(x)\n\t<\/p>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\tImmutable.Map.isList(x)\n\t<\/p>\n<h3 id=\"\u5bf9\u8c61\u5408\u5e76\u6ce8\u610f\u662f\u540c\u4e2a\u7c7b\u578b\" style=\"font-size:16px;color:#393939;font-family:&quot;background-color:#FFFFFF;\">\n\t\t\u5bf9\u8c61\u5408\u5e76(\u6ce8\u610f\u662f\u540c\u4e2a\u7c7b\u578b)<br \/>\n\t<\/h3>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\timmutableMaB = immutableMapA.merge(immutableMaC)\n\t<\/p>\n<h3 id=\"map\u7684\u589e\u5220\u67e5\u6539\" style=\"font-size:16px;color:#393939;font-family:&quot;background-color:#FFFFFF;\">\n\t\tMap\u7684\u589e\u5220\u67e5\u6539<br \/>\n\t<\/h3>\n<h4 id=\"\u67e5\" style=\"font-size:14px;color:#333333;font-family:&quot;background-color:#FFFFFF;\">\n\t\t\u67e5<br \/>\n\t<\/h4>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\timmutableData.get(&#8216;a&#8217;) \/\/ {a:1} \u5f97\u52301\u3002\n\t<\/p>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\timmutableData.getIn([&#8216;a&#8217;, &#8216;b&#8217;]) \/\/ {a:{b:2}} \u5f97\u52302\u3002\u8bbf\u95ee\u6df1\u5c42\u6b21\u7684key\n\t<\/p>\n<h4 id=\"\u589e\u548c\u6539\u6ce8\u610f\u4e0d\u4f1a\u6539\u53d8\u539f\u6765\u7684\u503c\u8fd4\u56de\u65b0\u7684\u503c\" style=\"font-size:14px;color:#333333;font-family:&quot;background-color:#FFFFFF;\">\n\t\t\u589e\u548c\u6539(\u6ce8\u610f\u4e0d\u4f1a\u6539\u53d8\u539f\u6765\u7684\u503c\uff0c\u8fd4\u56de\u65b0\u7684\u503c)<br \/>\n\t<\/h4>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\timmutableData.set(&#8216;a&#8217;, 2) \/\/ {a:1} \u5f97\u52301\u3002\n\t<\/p>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\timmutableData.setIn([&#8216;a&#8217;, &#8216;b&#8217;], 3)\n\t<\/p>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\timmutableData.update(&#8216;a&#8217;,function(x){return x+1})\n\t<\/p>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\timmutableData.updateIn([&#8216;a&#8217;, &#8216;b&#8217;],function(x){return x+1})\n\t<\/p>\n<h4 id=\"\u5220\" style=\"font-size:14px;color:#333333;font-family:&quot;background-color:#FFFFFF;\">\n\t\t\u5220<br \/>\n\t<\/h4>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\timmutableData.delete(&#8216;a&#8217;)\n\t<\/p>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\timmutableData.deleteIn([&#8216;a&#8217;, &#8216;b&#8217;])\n\t<\/p>\n<h3 id=\"list\u7684\u589e\u5220\u67e5\u6539\" style=\"font-size:16px;color:#393939;font-family:&quot;background-color:#FFFFFF;\">\n\t\tList\u7684\u589e\u5220\u67e5\u6539<br \/>\n\t<\/h3>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\t\u5982\u540cMap\uff0c\u4e0d\u8fc7\u53c2\u6570\u53d8\u4e3a\u6570\u5b57\u7d22\u5f15\u3002\n\t<\/p>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\t\u6bd4\u5982immutableList.set(1, 2)\n\t<\/p>\n<h3 id=\"\u5176\u5b83\u4fbf\u6377\u51fd\u6570\" style=\"font-size:16px;color:#393939;font-family:&quot;background-color:#FFFFFF;\">\n\t\t\u5176\u5b83\u4fbf\u6377\u51fd\u6570<br \/>\n\t<\/h3>\n<p style=\"color:#393939;font-family:&quot;font-size:14px;background-color:#FFFFFF;\">\n\t\t\u5982\u540cunderscore\u7684\u65b9\u6cd5\uff0c\u90fd\u6709\u5662\u3002\n\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>JavaScript \u4e2d\u7684\u5bf9\u8c61\u4e00\u822c\u662f\u53ef\u53d8\u7684\uff08Mutable\uff09\uff0c\u56e0\u4e3a\u4f7f\u7528\u4e86\u5f15\u7528\u8d4b\u503c\uff0c\u65b0\u7684\u5bf9\u8c61\u7b80\u5355\u7684\u5f15\u7528\u4e86\u539f\u59cb\u5bf9\u8c61&#8230;<\/p>\n","protected":false},"author":2,"featured_media":228,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"categories":[60],"tags":[206],"_links":{"self":[{"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/posts\/2946"}],"collection":[{"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/comments?post=2946"}],"version-history":[{"count":3,"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/posts\/2946\/revisions"}],"predecessor-version":[{"id":2951,"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/posts\/2946\/revisions\/2951"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/media\/228"}],"wp:attachment":[{"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/media?parent=2946"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/categories?post=2946"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.daliane.com\/category\/jinjiaoyou\/wp-json\/wp\/v2\/tags?post=2946"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}