0

我是 js 新手,有时我很难习惯它的代码约定。所以我有一个问题,我应该如何声明函数表达式?看看我的代码,我是怎么做的,还是有更好的做法?

function onAddButtonClick() {
    var engWord = document.getElementById('engWord'),
        japWord = document.getElementById('japWord'),
        engVal = engWord.value,
        japVal = japWord.value,
        engExpr = (engVal !== ""),
        japExpr = (japVal !== ""),
        duplicateNum,
        checkImg,
        numOfWords;

    duplicateNum = (function () {
        var i,
            pair;

        for (i = 0; i < dictionary.length; i++) {
            pair = dictionary[i];
            if (pair.eng === engVal && pair.jap === japVal) {
                return 3;
            } else if (pair.jap === japVal) {
                return 2;
            } else if (pair.eng === engVal) {
                return 1;
            }
        }
        return 0;
    }());

    //remove focus from inputs
    engWord.blur();
    japWord.blur();
    ...
}

提前致谢。

4

1 回答 1

1

你做得很好。(在这种情况下,语法上不需要使用开头,但它向代码的人类读者发出了关于正在发生的事情的一个很好的警告。公约有帮助。

最后,调用的括号()可以进入关闭的内部或外部)。Doug Crawford 建议使用内部,并且许多短绒都会检查这一点。尽管他声称狗球1,但这并不重要。

顺便说一句,函数表达式被声明然后立即运行的想法被称为IFFE——Immediately Invoked Function Expression

于 2014-04-16T13:19:04.930 回答