javascript - 这段Javascript效率低下吗?

标签 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");   
  }
 );
});

它只循环大约 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/

相关文章:

javascript - Firebase 的单元测试 - 文件未包含问题(路由器 404 问题)

javascript - 带有 React 的 jQuery 选择器可以吗?

javascript - redis hmget node.js 异步/等待不工作

javascript - 如何在 JavaScript 中使用字段名称作为初始化时的哈希表键?

javascript - 如何在 javascript 中编写参数化 SQL 查询?

javascript - 将 javascript 对象分配给 html 元素的最佳方法

javascript - 用颜色填充方框 JavaScript

javascript - HTML5 canvas 坐标应该使用 float 还是整数?

javascript - 文本框和选择框将值组合在单个文本中(第一个 tb 值,然后是 sb 值)

javascript - 如何让 iframe 保持其位置?