比如我寫
var foo = (function () {
var obj = { name : "OBJ" };
return function (key) {
return obj[key]; } }) ();
那麽執行 foo("name") 這樣就可以拿到 "OBJ"
但是,如果我想寫 foo("obj", "name") 這樣
那上面的函數就沒法寫了……除非我能直接拿到閉包的整個環境,比如:
var foo = (function () {
var obj = { name : "OBJ" };
return function(objname, key) {
return getClosureVar(objname)[key]; } }) ();
或者更進一步,我想遍歷閉包能訪問到的所有臨時變量
類似于 for (var objname in getClosureVars()) { ... }
這種有可能做得到麽?
p.s. 如果 js 做不到的話,有另外哪种語言可以麽?
--
修改:withinsea FROM 221.221.204.242
FROM 221.221.204.242