这两种风格在Javascript中编写函数的区别是什么

What is the difference between these two styles of writing functions in Javascript

本文关键字:函数 区别 是什么 两种 风格 Javascript      更新时间:2024-06-17

我正在努力找出以下两个版本的Javascript函数之间的更好之处

var FirstName = function(){
    var value = 0;
    this.getValue = function(){
        return value;
    }
}

var FirstName = function(){
    var value = 0;
    return {
        getValue: function(){
            return value;
        }
    }
}

我确实理解后一种形式的闭包,但我不明白,从用法的角度来看,第二种风格的闭包比第一种有什么优势?

编辑:根据Felix的评论,这两个函数都形成了闭包。因此,在语义上,这两个函数之间没有区别(就我所理解的而言)。那么,哪种方式更可取呢?有什么指导方针吗?

在这种情况下,第二种方式似乎有点多余。但我相信在某些情况下,使用第二种方式可能更有益。我个人选择第一个,只是因为它通常会使代码更干净、更不混乱。这只是一种偏好。无论你喜欢哪一个,无论哪一个与你正在处理的其余代码一致。一致性是最重要的。

第一个方法不返回任何内容,只是将函数创建为全局变量,而第二个方法将内部函数作为对象的成员返回。

通过返回内部函数,您可以在整个代码中设置和维护函数的不同状态,而使用第一个函数,它将在每次运行时覆盖方法。似乎后者更灵活。。

你可以随意摆弄我做的这个演示。