我只是想知道这段 Javascript 代码是否会减慢我的网站速度:
$(function(){
var realLink = location.href;
$( "#nav a" ).each(
function( intIndex ){
String.prototype.startsWith = function(str){
return (this.indexOf(str) === 0);
}
var pageLink = $(this).attr("href");
if ( realLink.startsWith(pageLink) )
$(this).parent().addClass("active");
}
);
});
它只循环大约 5-7 次,而且我没有太多 Javascript 循环经验。
最佳答案
此代码片段本质上没有任何问题,只是您在循环中不断创建函数并将其分配给 String.prototype.startsWith
。当然,这是一项不必要的工作,至少应该是:
$(function(){
var realLink = location.href;
String.prototype.startsWith = function(str){
return (this.indexOf(str) === 0);
};
$( "#nav a" ).each(
function( intIndex ){
var pageLink = $(this).attr("href");
if ( realLink.startsWith(pageLink) )
$(this).parent().addClass("active");
}
);
});
我也认为那里不需要 intIndex
参数。它没有在函数中的任何地方使用。
关于javascript - 这段Javascript效率低下吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1938037/