हां, एक फ़ंक्शन कॉल (कोई भी फ़ंक्शन कॉल, न कि केवल रिकर्सिव) एक नया नेमस्पेस बनाता है। लेकिन, जब पैरामीटर के रूप में दिए जाते हैं, तो ऑब्जेक्ट्स रेफरेंस द्वारा पास किए जाते हैं।
तो, नया नेमस्पेस इस रेफरेंस की अपनी कॉपी प्राप्त करता है लेकिन यह फिर भी कॉलिंग फ़ंक्शन में उसी ऑब्जेक्ट को संदर्भित करता है, और यदि आप उस ऑब्जेक्ट की सामग्री को बदलते हैं, तो आप कॉलिंग फ़ंक्शन में परिवर्तन देखेंगे।
अधिक विशिष्ट होने के लिए, जब भी इंटरप्रेटर किसी फ़ंक्शन के कॉल का सामना करता है, तो यह एक फ्रेम ऑब्जेक्ट बनाता है, जिसे फ्रेम स्टैक पर पुश किया जाता है। हर बार एक फ्रेम बनाया जाता है, उस फ्रेम को अपना प्राइवेट नेमस्पेस दिया जाता है, जहां फ्रेम में प्रत्येक वेरिएबल को पुनः परिभाषित किया जाता है।