"函数表达式的约定"宣言

时间:2014-04-16 13:14:20

标签: javascript conventions function-expression

我是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();
    ...
}

提前致谢。

1 个答案:

答案 0 :(得分:1)

你做得很好。在这种情况下,使用开头(在语法上并不是必需的,但它会向代码的人类读者发出伟大的警告,告诉他们发生了什么。惯例有帮助。

最后,调用parens ()可以进入结束)内部或外部。 Doug Crawford建议内部和许多短裤检查。尽管他声称​​狗球 1,但这并不重要。

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