2013-01-02 5 views
1

J'ai deux fonctions jquery (fonction parent et fonction override)Comment accéder à la variable globale d'une autre fonction jquery

fonction parent:

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

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

fonction override:

(function ($) 
{ 

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

qui fonctionne comme prévu. mais quand j'essaie d'accéder à la variable un ou deux, je ne peux pas. Sais-tu pourquoi? existe-t-il une option pour accéder à la variable un et deux à partir de la fonction override sans modifier le parent?

Note: dans mon cas, parent et override sont deux fichiers séparés js fusionnés à un js commun tout en mettant build via ant.

Répondre

3

Non, vous ne pouvez pas. Ce que vous avez ici est une fermeture et un point sur les fermetures est que vous ne pouvez pas accéder à leur variable d'ailleurs.

Si vous voulez y accéder, vous devez ajouter accesseurs:

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

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

Vous pourriez être intéressé par this related question.

Questions connexes