jQuery应用问题
这两种写法有什么不同:1、+function($){$.functionname=function(){...}}(jQuery);2、jQuery.extend({fu...
这两种写法有什么不同:
1、+function ($) { $.functionname = function(){...} }(jQuery);
2、jQuery.extend({ functionname : function(){...} }) 展开
1、+function ($) { $.functionname = function(){...} }(jQuery);
2、jQuery.extend({ functionname : function(){...} }) 展开
1个回答
展开全部
这个有趣, 我想了下发表下我的拙见:
从作用上看:
1和2实际上都是把functionname扩张到了jQuery对象上, 因此都可以直接调用jQuery.functionname()
从返回值上看:
前者执行后返回Nan, 后者返回jQuery对象, 据说匿名函数的调取用+比!或者直接new一个的效率快很多.
从目的上看:
前者更适合于插件编写, 后者更适合于静态工具封装, 1中括号内的内容是函数体, 允许定义变量或者做分支等判断, 比如
+function ($) {
$.myfunction1 = function(){console.log(1)};
var myVar = 'init', myName = 'sleest';
$.myfunction2 = function(console.log(myVar));
}(jQuery);
虽然使用第二种方法将myVar和myName一起放到jQuery对象中去也是可以, 但总归不灵活并且覆盖的可能性大大增加, 因此我认为1方案更适合与插件封装, 2一般只适用于静态工具的封装, 以上.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询