Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
全局范围内的jQuery插件函数_Jquery_Jquery Plugins - Fatal编程技术网

全局范围内的jQuery插件函数

全局范围内的jQuery插件函数,jquery,jquery-plugins,Jquery,Jquery Plugins,现在我已经学习了很多关于jQuery插件开发和jQuery的知识。我制作了一个简单的jQuery插件,从$.fn.testplugin中移出initialize()函数,但现在initialize()函数在全局范围内。我的问题是如何从$.fn.testplugin中移出initialize()函数,同时使其成为本地范围 插件: (function($){ function initialize($obj, color){ $obj.css("color",color);

现在我已经学习了很多关于jQuery插件开发和jQuery的知识。我制作了一个简单的jQuery插件,从$.fn.testplugin中移出initialize()函数,但现在initialize()函数在全局范围内。我的问题是如何从$.fn.testplugin中移出initialize()函数,同时使其成为本地范围

插件:

(function($){
    function initialize($obj, color){
        $obj.css("color",color);
    };      

    $.fn.testplugin = function(options){
       var defaults = { 
        color: "red"
       };
       var option = $.extend(defaults, options);

       return this.each(function(){
        var $this = $(this);  
        initialize($this, option.color);
       });      
    };
})(jQuery);
使用
var

var initialize = function() {};

它将在匿名函数的本地范围内。

您的
initialize()
函数不在全局范围内;您将在定义闭包的位置显式创建闭包。您无法从发布代码中最外层函数的外部访问
initialize()
函数。

但它不在全局范围内。这不是必需的。函数的作用域与变量相同,即使直接声明也是如此;如果initialize()函数在全局范围内,则假定没有其他未发布的封装此代码的闭包,则
initialize()
将是全局的