不要在我无法修复的循环错误中创建函数

Posted

技术标签:

【中文标题】不要在我无法修复的循环错误中创建函数【英文标题】:Don't make functions within a loop error I can't fix 【发布时间】:2017-08-29 18:18:51 【问题描述】:

所以我正在使用 JSlint 并尝试实现以下代码,但我收到错误消息“”。知道如何更改我的代码以使其不会收到错误/警告吗?

var inputs = document.getElementsByTagName('input');
var blurInput = function () 
    this.blur();
;
for (var i = 0; i < inputs.length; i++) 
    (function (input) 
        input.addEventListener('focus', blurInput);
    )(inputs[i]);

【问题讨论】:

在外面创建函数并传入数据 关闭的意义何在?您不要保存input 以供以后使用。 【参考方案1】:

您希望将函数移到循环之外:

var inputs = document.getElementsByTagName('input');
var blurInput = function () 
    this.blur();
;

// (rename this to something useful...)
var doSomething = function (input) 
  input.addEventListener('focus', blurInput);
;

for (var i = 0; i < inputs.length; i++) 
    doSomething(inputs[i]);

【讨论】:

这就是我需要的。谢谢楼主!【参考方案2】:

在你的情况下,你可以省去那个闭包:

for (var i = 0; i < inputs.length; i++) 
    input[i].addEventListener('focus', blurInput);

【讨论】:

【参考方案3】:

如果您将使用 JsHint 或 EsLint,您将可以选择禁用该规则,但如果使用 JsLint,则除了更改代码结构之外别无选择。

您可以使用“Frxstrem”建议的代码更改

【讨论】:

以上是关于不要在我无法修复的循环错误中创建函数的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:无法在 smartFoxServer 中创建日志文件

由于循环依赖错误,无法添加对项目的引用

我无法在我的 sass 项目中创建每个循环

无法在 phpmyadmin 中创建程序

如何在 Python 中创建多个构造函数? [复制]

修复在 WiX 3.8 中创建的设置时出错