1

我有两个 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 构建。

4

1 回答 1

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 ); 

您可能对此相关问题感兴趣。

于 2013-01-02T11:20:56.497 回答