Javascript 访问在另一个文件中定义的局部变量

Javascript 访问在另一个文件中定义的局部变量,javascript,Javascript,interface.js ((function(){ var Person=function(){ } ....... })(); ((function(){ ... var Person=function(){ } window._load_implement=(function(){ return function(impl){ impl && impl();

interface.js

((function(){
    var Person=function(){
    }
    .......
})();
((function(){
    ...
    var Person=function(){
    }
    window._load_implement=(function(){
        return function(impl){
            impl && impl();
            delete window._load_implement;
        }
    })();
})();
implementation.js

((function(){
    //access local variables(Person) in interface.js
    Person.prototype.eat=function(){

    }
})();
((function(){
    var imp=function(){
        Person.prototype.eat=....   
    }
    window._load_implement(imp);
})();
加载它们:

function getScript(src) {
    document.write('<' + 'script src="' + src + '"' + ' type="text/javascript"><' + '/script>');
}

getScript("interface.js");
getScript("implemention.js");
implementation.js

((function(){
    //access local variables(Person) in interface.js
    Person.prototype.eat=function(){

    }
})();
((function(){
    var imp=function(){
        Person.prototype.eat=....   
    }
    window._load_implement(imp);
})();
依我看,当
imp
方法运行时,应该关闭
Peson
和其他变量,这意味着应该访问它们,但它不起作用

有什么问题吗



我发布了这个问题并试图得到答案,因为我看到了一些类似的用法,比如谷歌地图,将被加载,所有与地图相关的对象,如
map
Marker
和一些util函数都在那里定义,然后在需要时加载其他谷歌地图模块,如,但是,如果要使用立即调用的函数表达式并将对象添加到全局名称空间,则
infowindow.js
可以使用
main.js
中定义的所有util函数,可以将它们显式添加到窗口对象或正确范围内的另一个非全局对象,而不是将对象定义为函数内的局部变量:

(function(){
    window.Person = function(){
    }
    .......
})();


后者被称为。

它们是在同一个文件中还是在不同的文件中并不重要。函数的本地变量不能在该函数之外访问。Javascript使用变量的词法范围。局部变量的作用域仅是在声明变量的函数体中定义的函数。它不包括作为参数传递给这些函数的函数。这是否意味着我的要求不可能实现?这是正确的。您可能应该研究OO编程,以提供一种使对象中的局部变量可访问的方法。