如何访问另一个jquery函数的全局变量

时间:2013-01-02 11:20:14

标签: javascript jquery ant global-variables override

我有两个jquery函数(父函数和覆盖函数)

父功能:

( function ( $ )
{
    var one = null;
    var two = {};

    $.fn.method = function(){
    // parent code;
    }
   })( jQuery ); 

OverRide功能:

( function ( $ )
{

$.fn.method = function(){
    // override code;
  }
  })( jQuery ); 

正在按预期工作。但是当我尝试访问变量一或两个时,我不能。你知道为什么吗?是否有任何选项可以在不修改父项的情况下从覆盖函数访问变量1和2?

注意:在我的情况下,parent和override是两个单独的js文件合并到一个公共js,同时通过ant放置构建。

1 个答案:

答案 0 :(得分:3)

不,你不能。你在这里有一个闭包,关于闭包的一点是你无法从其他地方访问它们的变量。

如果要访问它们,则必须添加访问者:

( function ( $ )
    {
        var one = null;
        var two = {};

        $.fn.method = function(){
        // parent code;
        }
        $.fn.getOne = function() {
            return one;
        };
        $.fn.setOne = function(n) {
            return one = n;
        };
})( jQuery ); 

您可能对this related question感兴趣。