这段Javascript效率低下吗?

Kyl*_*iss 0 javascript

我只是想知道这段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");   
  }
 );
});
Run Code Online (Sandbox Code Playgroud)

它只循环了大约5-7次,而且我没有很多Javascript循环经验.

kan*_*gax 5

除了你经常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");   
  }
 );
});
Run Code Online (Sandbox Code Playgroud)

我也认为没有必要在intIndex那里争论.它不能在函数中的任何地方使用.