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

时间:2011-12-29 10:41:02

标签: 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();
};

$(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);
});

2 个答案:

答案 0 :(得分:4)

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

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

但是,正如您所发现的,没有功能差异。两者都会执行得很好。

答案 1 :(得分:0)

我认为主要的想法是你不会混淆全局命名空间。在第二个示例中,simple_hide_function属于窗口,可能会导致名称冲突,但在第一个示例中,它是一个局部变量。