2015-12-13 28 views
5
उपयोग करने के लिए वस्तु सौंप कर नई वस्तु क्लोन

मैं Immutable.js के लिए दस्तावेज़ को देख रहा हूँ, विशेष रूप से निम्नलिखित:बस एक चर Immutable.js

var map1 = Immutable.Map({a:1, b:2, c:3}); 
var clone = map1; 

लेकिन मैं कैसे बस के रूप में उलझन में हूँ क्लोन के लिए map1 असाइन करना संदर्भ के बजाए क्लोन बनाता है?

अद्यतन:। डॉक्स राज्य "एक वस्तु अपरिवर्तनीय है, तो यह किया जा सकता है" की नकल की "बस यह करने के लिए एक और संदर्भ बनाने के बजाय संपूर्ण वस्तु को कॉपी करके क्योंकि एक संदर्भ वस्तु ही तुलना में काफी छोटा है, इसके परिणामस्वरूप स्मृति बचत और निष्पादन की गति में संभावित वृद्धि होती है जो प्रतियों (जैसे पूर्ववत स्टैक) पर भरोसा करती है। "

मैंने अभी यह एक jsbin में परीक्षण किया है, और क्लोन === map1 करता है। मुझे लगता है कि दस्तावेज़ों में 'क्लोन' शब्द का उनका उपयोग थोड़ा भ्रामक है।

+0

क्या आपके द्वारा पारित वस्तु का एक क्लोन 'map1' नहीं है? –

उत्तर

2

चूंकि Immutable.Map अपरिवर्तनीय है, क्लोनिंग की धारणा अप्रचलित है। उनका मुद्दा यह है कि आपको क्लोनिंग के बारे में परेशान करने की आवश्यकता नहीं है या नहीं, इससे कोई फर्क नहीं पड़ता।

दस्तावेज़ वास्तव में उलझन में हैं, और वास्तव में यह एक क्लोन नहीं है। क्लोनिंग का प्रभाव वैसे भी वही होगा।