jquery函数和常规javascript函数之间的区别?

jquery函数和常规javascript函数之间的区别?,jquery,function,jquery-plugins,Jquery,Function,Jquery Plugins,这样编写jquery函数有什么意义: (function( $ ) { $.fn.simple_hide_function = function() { var $t = this; $t.hide(); }; })( jQuery ); $(window).load(function () { $('#myId').simple_hide_function(); }); function simple_hide_function(id){ id.hide(); }; $(

这样编写jquery函数有什么意义:

(function( $ ) {
  $.fn.simple_hide_function = function() {
  var $t = this;
  $t.hide();
  };
})( jQuery );

$(window).load(function () {
$('#myId').simple_hide_function();
});
function simple_hide_function(id){
id.hide();
};

$(window).load(function () {
var my_id = $('#my_id');
simple_hide_function(my_id);
});
为什么不这样做:

(function( $ ) {
  $.fn.simple_hide_function = function() {
  var $t = this;
  $t.hide();
  };
})( jQuery );

$(window).load(function () {
$('#myId').simple_hide_function();
});
function simple_hide_function(id){
id.hide();
};

$(window).load(function () {
var my_id = $('#my_id');
simple_hide_function(my_id);
});
新增问题:

这样做有什么问题吗

function simple_hide_function(id){
id.hide();
};

$(window).load(function () {
var my_id1 = $('#my_id1'),
my_id2 = $('#my_id2'),
my_id3 = $('#my_id3');
simple_hide_function(my_id1);
simple_hide_function(my_id2);
simple_hide_function(my_id3);
});

在插件版本中,您将创建一个新函数并将其附加到jQuery对象。通过使您的函数成为对象的成员,您可以利用jQuery的链接等功能,其中多个函数在一行中的同一对象上被调用

在第二个版本中,您将在全局范围中创建一个函数,并将jQuery对象传递给它。这会污染全局名称空间(现在您的函数随处可见),而且它实际上并不符合jQuery的理念


但是,正如您所发现的,没有功能上的差异。这两种方法都可以很好地执行。

我认为主要的想法是您没有弄乱全局名称空间。在第二个示例中,
simple\u hide\u函数
属于窗口,可能会导致名称冲突,但在第一个示例中,它是一个局部变量。

对于添加的问题:如果您不介意代码很难读取、重用和维护,为什么不呢。这被称为“坏习惯”。当你成为一名越来越好的开发人员时,你会意识到你不能做那样的事情。谢谢jkeesh!我补充了一个问题。第二个示例也会使全局名称空间变得混乱,因为
simple\u hide\u function
仍然绑定到窗口。以上部分答案解释了使用jQuery插件的其他好处。谢谢Interrobang,我想我理解你的意思。只是为了让shore看起来像secound版本一样没有什么错吗?好吧,对于第二个版本,你不能做
$(“#我的id1,#我的id2,#我的id3”)。简单的隐藏函数()就像插件版本一样。如果您打算使用jQuery操作某些东西,那么一定要使用jQuery插件,这就是它们的全部要点。