在jQuery插件中,返回';这';或'$(这)&"x27"?;?
创建jQuery插件时,在在jQuery插件中,返回';这';或'$(这)&"x27"?;?,jquery,jquery-plugins,Jquery,Jquery Plugins,创建jQuery插件时,在$.fn函数中应该返回什么?是返回此还是返回$(此)?我在搜索时遇到的一些网站使用前者,而其他网站使用后者: 返回$(此): (提示10) 返回此: 区别是什么,首选什么?直接在一个函数内部,该函数位于$上。fn(jQuery构造函数的原型),此指函数运行的jQuery集合实例。返回此是正确的。用$()包装它只会给代码增加不必要的权重 请参阅。这是调用函数的jQuery对象$(这)是对象(另一个jQuery对象,引用相同的DOM元素或原始对象所持有的任何对象)的浅
$.fn
函数中应该返回什么?是返回此
还是返回$(此)
?我在搜索时遇到的一些网站使用前者,而其他网站使用后者:
: (提示10)返回$(此)
:返回此
区别是什么,首选什么?直接在一个函数内部,该函数位于
$上。fn
(jQuery构造函数的原型),此指函数运行的jQuery集合实例。返回此
是正确的。用$()
包装它只会给代码增加不必要的权重
请参阅。这是调用函数的jQuery对象$(这)
是对象(另一个jQuery对象,引用相同的DOM元素或原始对象所持有的任何对象)的浅拷贝。通常,这个
应该更好,因为1)创建jQuery对象的副本需要大量的操作,2)通常不会更改jQuery对象的属性
现在,如果确实更改了属性,则这两种行为会有所不同:
var foo = $('#id');
var bar = $(foo);
foo.baz = 1;
bar.baz; // undefined
在这种情况下,返回$(这个)
可能更有意义。例如,jQuery自己的add
函数在内部执行如下操作:
var next = $(this);
// add parameter to next
return next;
因此,当您向jQuery对象添加元素时,它不会修改原始元素:
var foo = $('html');
var bar = foo.add('body');
bar.length; // 2
foo.length; // 1
是的,我也是这么想的。谢谢你的确认。