1

我正在努力找出以下两个版本的 Javascript 功能之间有什么更好的地方

var FirstName = function(){
    var value = 0;

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

var FirstName = function(){
    var value = 0;

    return {
        getValue: function(){
            return value;
        }
    }
}

我确实知道后者形成了一个闭包,但我不明白,从使用的角度来看,第二种风格的闭包比第一种风格有什么优势?

编辑:根据 Felix 的评论,这两个函数都形成了闭包。所以在语义上这两个函数之间没有区别(据我所知)。那么哪个是首选方式?有什么指导方针吗?

4

2 回答 2

0

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

于 2012-07-31T21:07:17.200 回答
0

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

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

你可以乱用我做的这个演示。

于 2012-07-31T21:07:24.280 回答