所以我最近开始在一个新的工作场所,我遇到了一种javascript格式,让我质疑它的目的.(特别是括号{})
var _occurrences = getOccurrences($('#ddlTours').val());
{
var _occurrence = getObjectByValue(_occurrences, 'tourID', booking.tourID);
{
_occurrenceID = _occurrence.occurrenceID;
}
}
Run Code Online (Sandbox Code Playgroud)
对我来说,它几乎看起来像一个尝试对象的构造.即
var _occurrences : // Ignoring = getOccurrences($('#ddlTours').val());
{
_occurrence : // Ignoring getObjectByValue(_occurrences, 'tourID', booking.tourID);
{
_occurrenceID : _occurrence.occurrenceID;
}
}
Run Code Online (Sandbox Code Playgroud)
但据我所知,它会执行它.
var _occurrences = getOccurrences($('#ddlTours').val());
var _occurrence = getObjectByValue(_occurrences, 'tourID', booking.tourID);
_occurrenceID = _occurrence.occurrenceID;
Run Code Online (Sandbox Code Playgroud)
或者它是如此_occurrence得到删除并且不会被封装,我们分配一个在封装之外的var.这实际上是否可以改善绩效?即
Global var a = 1
{
b = someFunction() // After execution because of encapsulation it poofs???
for(var c in b)
{
a += c.somefunction()
}
}
Run Code Online (Sandbox Code Playgroud)
另一个选择是它的代码不好吗?
或者它可能意味着代码的逻辑分离,以帮助开发?
我只是想知道是否有人可以为我揭示这一点:)
Mic*_*ary 45
你是对的问题那些花括号.他们什么都不做.大括号内的代码与大括号不存在时的代码执行方式相同.把它们放在那里显然是错误的.
正如你所提到的,看起来有人可能会认为花括号会引入一个块范围,可能会导致一个变量在括号关闭后超出范围.但是JavaScript没有var变量的块范围!(它确实具有块范围let,但仅限于支持的较新JavaScript引擎let.)
或许他们只是认为这是记录变量使用位置的好方法.不是.
添加到这里的幽默,代码似乎缺少var了_occurrenceID完全-所以它可能无意间建立了一个全局变量!
你没有花括号重写代码的方式确实是它实际执行的方式.它更好地表示代码实际执行的内容以及代码的编写方式.(var当然修复了失踪......)
小智 10
或者它可能意味着代码的逻辑分离,以帮助开发?
我将在这里做两个假设:
(如果1不成立则所有投注均已关闭)
无所事事的花括号块确实有目的 - 在各种文本编辑器中,它们标记可以折叠并因此从视线中移除的部分.我经常这样做,如果我有50多行,我知道工作,但我必须不断滚动过去.在内容周围放置curlies(介意嵌套),单击装订线中的"折叠/折叠"图标 - >代码消失.我的特定编辑会记住折叠的块,所以我不需要每次都重新折叠.
据我所知,大括号只是对正在阅读代码的开发人员的暗示.
我的猜测是括号和嵌套只是为了说明列表中包含一个包含id的项目.这可能旨在帮助读者理解,如果他们编辑任何代码或移动它,那么也编辑内部代码以匹配.
| 归档时间: |
|
| 查看次数: |
2836 次 |
| 最近记录: |