Javascript 在jQuery插件-$(obj)与obj中引用时要使用哪个

Javascript 在jQuery插件-$(obj)与obj中引用时要使用哪个,javascript,jquery,Javascript,Jquery,我正在自学,目前正在处理jQuery插件 我发现了一个锅炉板,在遍历页面上的元素时,它将$(this)分配给全局变量“obj” var obj = $(this); 因此,在我的函数中,我可以使用$(obj).someFunc()或obj.someFunc()两者都可以工作,但老实说,我并不真正理解两者的区别 因此,有一个问题,这两种方法的性能差异/好处是什么,我应该使用哪种方法?如果obj已经是jQuery对象,那么当您执行var obj=$(这一步)时就会出现这种情况,则无需再次将其传递给

我正在自学,目前正在处理jQuery插件

我发现了一个锅炉板,在遍历页面上的元素时,它将$(this)分配给全局变量“obj”

var obj = $(this);
因此,在我的函数中,我可以使用
$(obj).someFunc()
obj.someFunc()
两者都可以工作,但老实说,我并不真正理解两者的区别


因此,有一个问题,这两种方法的性能差异/好处是什么,我应该使用哪种方法?

如果
obj
已经是jQuery对象,那么当您执行
var obj=$(这一步)时就会出现这种情况,则无需再次将其传递给jQuery

$(obj)
$($(this))
相同,这显然是多余的

查看一下还有助于了解可以传递给
jQuery
(别名
$
)的内容:

  • jQuery(选择器[,上下文])
  • jQuery(元素)
  • jQuery(elementArray)
  • jQuery(对象)
  • jQuery(jQuery对象)
  • jQuery()
您可以看到传递jQuery对象是完全有效的,但它将克隆传递的对象,这可能不是您想要做的


然而,值得指出的是,在jQuery插件方法中,
这个
已经是jQuery对象了,所以您也不必将它传递给jQuery

这里的更多信息:.

如果
obj.someFunc()
$(obj)。someFunc()
都可以工作,并且
someFunc
是一个jQuery函数,那么它意味着
obj
是一个jQuery对象


在这种情况下,
$(obj)
只是一个冗余调用。

区别非常简单-在第一种情况下,$(obj)。someFunc()您每次都在调用$()。在第二种情况下,obj.someFunc(),只调用它一次,并将其结果存储在一个名为obj
var obj=$的变量中(这是)

这就像您创建了一个类的实例,您可以访问和使用
obj
,使用以下命令会更好:

`$(obj)`

是冗余初始化,就像您创建了类的另一个实例并将相同的对象分配给它一样。因此,使用它没有任何用处,或者说没有任何好处。

如果您像上面那样定义了obj,那么就没有理由使用
$(obj)
,因为它是多余的<代码>$($($($($(obj˃))
在jQuery插件中,
这是jQuery对象,所以你要重写它两次?这取决于你是否已经在
这里面了。每个
是的,我正在使用的锅炉板都被包装在返回这个中。每个(函数()…我宁愿使用var$obj=$(…)为了避免混淆。所以我可以忽略将$(this)分配给obj而只引用“this”?@Kryptonite:根据上下文,是的。但是您没有提供更多信息,所以我的建议是:试试:)@Kryptonite:关于您的其他注释:
this的回调内。每个
这个
当然只会引用DOM元素,因为这就是
的工作方式。每个
都是这样工作的。在这种情况下,您必须像往常一样将
传递给
$