我正在努力找出以下两个版本的Javascript功能
之间有什么好处var FirstName = function(){
var value = 0;
this.getValue = function(){
return value;
}
}
和
var FirstName = function(){
var value = 0;
return {
getValue: function(){
return value;
}
}
}
我明白后者形成了一个闭包但我不明白,从使用的角度来看,第二种风格的封闭在第一种风格中提供了什么优势呢?
编辑:根据Felix的评论,这两个函数形成了封闭。从语义上讲,这两个函数之间没有区别(据我所知)。那么哪种方式首选?有没有指南?
答案 0 :(得分:0)
在这种情况下,第二种方式似乎有点多余。但我确信在某些情况下使用第二种方式可能更有利。我个人选择第一个,因为它通常会使代码更清晰,更容易混淆。这只是一个偏好的事情。无论您喜欢哪种方式,以及与您正在处理的其余代码一致的方式。一致性是最重要的。
答案 1 :(得分:0)
第一种方法不返回任何东西,只是将函数创建为全局变量,而第二种方法返回内部函数作为对象的成员。
通过返回内部函数,您可以在整个代码中设置和维护函数的不同状态,而对于第一个函数,它将在每次运行时覆盖该方法。好像后者更灵活..
你可以搞砸我制作的demo。