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