function test(obj){
//如果写成 var obj=$(obj)这个对效率有很大影响吗 会不会对dom重新选择 注意这里传的是this
obj.css("display","none");
}<div onmouseover="test(this)">start</div>
//如果写成 var obj=$(obj)这个对效率有很大影响吗 会不会对dom重新选择 注意这里传的是this
obj.css("display","none");
}<div onmouseover="test(this)">start</div>
init: function( selector, context ) {
// Make sure that a selection was provided
selector = selector || document; // Handle $(DOMElement)
if ( selector.nodeType ) {
this[0] = selector;
this.length = 1;
this.context = selector;
return this;
}参考以上代码片段,来自jQuery1.3.2.
如果你使用string来选择元素的话,是会重新从dom选择的,如果是element,执行到这里,就会返回对象了,这个过程不会从dom中进行元素筛选.至于性能损失,当然是有了,但是这个代码的简单程度,不值得为它考虑.如果你缓存了对象,反而需要处理缓存的对象指针在闭包中的问题.我还是比较喜欢简单的代码,太多的考虑,不值得.程序不是完全靠细节运行的.
传的是div层的
这个对象
就是div onmouseover="test(this)">start</div> 对象