这两种风格在Javascript中编写函数的区别是什么
What is the difference between these two styles of writing functions in Javascript
我正在努力找出以下两个版本的Javascript函数之间的更好之处
var FirstName = function(){
var value = 0;
this.getValue = function(){
return value;
}
}
和
var FirstName = function(){
var value = 0;
return {
getValue: function(){
return value;
}
}
}
我确实理解后一种形式的闭包,但我不明白,从用法的角度来看,第二种风格的闭包比第一种有什么优势?
编辑:根据Felix的评论,这两个函数都形成了闭包。因此,在语义上,这两个函数之间没有区别(就我所理解的而言)。那么,哪种方式更可取呢?有什么指导方针吗?
在这种情况下,第二种方式似乎有点多余。但我相信在某些情况下,使用第二种方式可能更有益。我个人选择第一个,只是因为它通常会使代码更干净、更不混乱。这只是一种偏好。无论你喜欢哪一个,无论哪一个与你正在处理的其余代码一致。一致性是最重要的。
第一个方法不返回任何内容,只是将函数创建为全局变量,而第二个方法将内部函数作为对象的成员返回。
通过返回内部函数,您可以在整个代码中设置和维护函数的不同状态,而使用第一个函数,它将在每次运行时覆盖方法。似乎后者更灵活。。
你可以随意摆弄我做的这个演示。
相关文章:
- JavaScript中的函数和对象之间没有区别吗?
- javascript函数的:和=之间的区别
- 函数中this和var之间的区别
- 使用大括号和不使用bracs调用函数的区别
- 缓存!saveLocations()和addLocation()函数有什么区别
- Javascript-defineProperty和直接在对象上定义函数之间的区别
- 函数()和新函数()之间的区别
- 直接绑定和使用每个函数之间的区别
- 两者之间有什么区别..函数中的参数和参数
- 调用函数和回调函数有什么区别
- JS构造函数的原型属性与其原型之间的区别
- 在函数内赋予价值和在函数外赋予价值有什么区别
- js 函数之间使用参数的区别
- 在 JavaScript 中的对象内分配柯里函数时,这和 self 之间有什么区别吗?
- 这些函数类型之间有什么区别
- javascript onchange中的代码和函数中的相同代码有什么区别
- 向构造函数或原型添加属性之间的区别
- 什么's调用函数和传递函数的区别
- jQuery递归函数调用和Javascript之间有区别吗;s setInterval
- 试图理解JavaScript中原型和构造函数之间的区别