2013-01-02 107 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

相關問題