前端JS性能疑问
有没有朋友帮忙解答一些疑虑,前端的js代码中通过find获得了li对象集,但后面代码多次引用了 objs.first()进行操作,问一下有没有必要先把对象取出来,如var obj1 = objs.first(),后面用obj1去操作。谢谢啦。
2 回复
当然是提出来比较好。 不过最近在复习编译原理,优化一章里面有提一般的编译器会对代码进行代码外提,删除归纳变量一类的操作,这么说起来倒应该是没有多少差别的。你可以自己测试一下性能看看 From Noder
噢噢,谢谢。再问个this的问题作用域问题:自己写了个插件,加粗的each和事件中的this都是取自己域内的是吗?也就是on中this不是each中this是吧? (function($){ $.fn.banmatable = function(options){ var defaults = { evenRowClass:“evenRow”, oddRowClass:“oddRow”, activeRowClass:“activeRow” }
var options = $.extend(defaults, options);
**this**.each(function(){
var $thisTable=$(**this**);
//添加奇偶行颜色
$thisTable.find("tr:even").addClass(options.evenRowClass);
$thisTable.find("tr:odd").addClass(options.oddRowClass);
//添加活动行颜色
$thisTable.on('mouseover','tr',function(){
$(this).addClass(options.activeRowClass);
});
$thisTable.on('mouseout','tr',function(){
$(**this**).removeClass(options.activeRowClass);
});
});
};
})(jQuery);