ऑब्जेक्ट कुछ दायरे में मौजूद है, इसलिए आप इस सिंटैक्स के माध्यम से लगभग हमेशा चर तक पहुंच सकते हैं:
var objname = "myobject";
containing_scope_reference[objname].some_property = 'some value';
एकमात्र स्थान जहां यह मुश्किल हो जाता है जब आप एक बंद दायरे में होते हैं और आप एक शीर्ष-स्तरीय स्थानीय चर तक पहुंच चाहते हैं। जब आपके पास ऐसा कुछ हो:
(function(){
var some_variable = {value: 25};
var x = "some_variable";
console.log(this[x], window[x]);
})();
आप कर सकते हैं कि evalवर्तमान गुंजाइश श्रृंखला का उपयोग करने के बजाय का उपयोग करके ... लेकिन जब तक आप बहुत सारे परीक्षण नहीं कर लेते और मैं नहीं जानता कि यह चीजों के बारे में जाने का सबसे अच्छा तरीका है।
(function(){
var some_variable = {value: 25};
var x = "some_variable";
eval(x).value = 42;
console.log(some_variable);
})();
आपकी सबसे अच्छी शर्त यह है कि हमेशा-जाने-आने वाली वस्तु में एक नाम का संदर्भ दिया जाए (जैसे thisवैश्विक स्कोप में या स्थानीय स्कोप में एक निजी टॉप-लेवल वैरिएबल) और बाकी सब कुछ उसमें डाल दें ।
इस प्रकार:
var my_outer_variable = {};
var outer_pointer = 'my_outer_variable';
(function(){
var my_inner_scope = {'my_inner_variable': {} };
var inner_pointer = 'my_inner_variable';
})();
alert(this === window)।