चाहे आप किसी चीज को उर्फ कर सकते हैं, डेटा प्रकार पर निर्भर करता है। वस्तुओं, सरणियों और कार्यों को संदर्भ द्वारा नियंत्रित किया जाएगा और अलियासिंग संभव है। अन्य प्रकार अनिवार्य रूप से परमाणु हैं, और चर एक मूल्य के संदर्भ के बजाय मूल्य को संग्रहीत करता है।
तर्कों। एक समारोह है, और इसलिए आप इसे करने के लिए एक संदर्भ हो सकता है और उस साझा वस्तु को संशोधित कर सकते हैं।
function foo() {
var self = arguments.callee;
self.myStaticVar = self.myStaticVar || 0;
self.myStaticVar++;
return self.myStaticVar;
}
ध्यान दें कि यदि उपर्युक्त कोड में आप कहते हैं self = function() {return 42;};तो selfफिर एक अलग वस्तु से संदर्भित करेगा arguments.callee, जो कि एक संदर्भ है foo। जब आपके पास एक कंपाउंड ऑब्जेक्ट होता है, असाइनमेंट ऑपरेटर संदर्भ को बदल देता है, तो यह संदर्भित ऑब्जेक्ट को नहीं बदलता है। परमाणु मूल्यों के साथ, जैसा मामला होता y++है, उसके बराबर होता है y = y + 1, जो चर को 'नया' पूर्णांक प्रदान कर रहा है।