2013-01-02 112 views
1

我有两个jQuery函数(父功能和覆盖功能)如何访问另一个jQuery函数的全局变量

父功能:

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

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

覆盖功能:

(function ($) 
{ 

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

它按预期工作。但是当我尝试访问一个或两个变量时,我不能。你知道为什么吗?有没有任何选项来访问变量之一和两个重写函数而不修改父项?

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

回答

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

相关问题