JavaScript - 编写嵌套函数的方法

时间:2016-09-22 10:04:13

标签: javascript function nested

可以编写这样的嵌套函数吗?

var player = function () {
    //'use strict';

    var setLives = function () {
        return 3;
    };

    var lives = setLives();

    console.log(lives);
};

player();

在jsLint中,这将是非常难看的:

var player = function () {
    'use strict';

    var setLives = function () {
            return 3;
        },
        lives = setLives();

    console.log(lives);
};

player();

大多数人似乎都使用以下方法:

var player = function () {
    //'use strict';

    function setLives() {
        return 3;
    }

    var lives = setLives();

    console.log(lives);
};

player();

使用哪种方法或者后者是首选方法是否重要?

它会减慢代码速度还是没有差别?

提前致谢!

1 个答案:

答案 0 :(得分:1)

对于引用的代码,它没有区别;它完全是一种风格问题。

有时,人们更喜欢编写函数表达式(var setLives = function() { };),因为这些函数表达式在函数中的代码逐步流程中发生。

有时,人们更喜欢编写函数声明(function setLives() { }),因为它们是在处理函数中的代码的逐步流程之前处理的。

如果函数的定义根据条件而不同......

if (someCondition) {
    // One definition for it
} else {
    // A different definition
}

...然后必须使用函数表达式,而不是声明。