我正在自学,目前正在处理 jQuery 插件。
我发现了一个样板,用于遍历页面上的元素,将 $(this) 分配给全局变量“obj”。
var obj = $(this);
因此在我的函数中,我可以使用 $(obj).someFunc()
或 obj.someFunc()
两者都有效,但老实说我不会真正理解有什么区别。
那么问题来了,这两种方法的性能差异/优势是什么,我应该使用哪种?
最佳答案
如果 obj
已经是一个 jQuery 对象,当你执行 var obj = $(this);
时就是这种情况,那么就没有必要将它传递给jQuery 再次。
$(obj)
与$($(this))
相同,显然是多余的。
看看jQuery
's documentation [docs]还有助于理解您可以传递给 jQuery
(别名 $
)的内容:
jQuery( 选择器 [, context ] )
jQuery(元素)
jQuery(元素数组)
jQuery(对象)
jQuery(jQuery 对象)
jQuery()
您看到传递 jQuery 对象是完全有效的,但它会克隆传递的对象,这可能不是您想要做的。
但是,可能值得指出的是,在一个 jQuery 插件方法中,this
已经是一个 jQuery 对象,所以您不需要也不必将它传递给 jQuery。
更多信息在这里:http://docs.jquery.com/Plugins/Authoring .
关于javascript - 在 jQuery 插件中引用时使用哪个 - $(obj) vs obj,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14987883/