Javascript 嵌套函数 - 有什么区别?

标签 javascript function

我正在思考以下 Javascript 最佳实践模式。我的代码中有一个函数,其中有一些嵌套函数。应首选以下哪种模式?为什么?

function parent() {
    function child1() {
        //child 1 code
    }

    function child2() {
        //child2 code
    }
    //parent code
    return {
        child1: child1,
        child2: child2
    };
}

function parent() {
    var child1 = function () {
        //child 1 code
    };
    var child2 = function () {
        //child2 code
    };
    //parent code
    return {
        child1: child1,
        child2: child2
    };
}

最佳答案

这两个版本之间的主要区别在于

var a = function(){ ...

该函数是未定义的,直到这一行(但变量存在) while in

function a() { ...

该函数是从封闭函数开始时定义的:

console.log(a); // logs "function a(){ return 2} "
console.log(b); // logs "undefined"
function a(){ return 2};
var b = function(){ return 2};

正如 Jan 指出的,第一个版本还定义了函数的 name 属性。

除此之外,没有什么区别,这主要是风格问题,我不知道最佳实践。

关于Javascript 嵌套函数 - 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20741324/

相关文章:

c - 确定函数的 Big-O 表示法

javascript - Jquery 使用append 用div 包装我的内容

c - C 中的函数指针和回调

javascript - 如何使用 JavaScript 传输图像

php - 变量在函数内未定义,无法在函数内到达 MySQL $connection

javascript - 内容脚本中的 Firefox SDK 访问首选项

javascript - 将字符串传递给事件监听器并给出 NULL

c - 使用 qsort 函数

javascript - knockout.js cleanNode 是否删除所有关联的事件监听器?

javascript - 如何在函数调用模式中使用 'this' 关键字?