前端JS性能疑问
发布于 8 年前 作者 cm16 3375 次浏览 来自 问答

有没有朋友帮忙解答一些疑虑,前端的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);

回到顶部