这是一个javascript优化?

pra*_*432 1 javascript

做得快吗?

(obj = {})[key] = val;
Run Code Online (Sandbox Code Playgroud)

然后

obj = {}
obj[key] = val;
Run Code Online (Sandbox Code Playgroud)

或者这是刚刚完成,因为它更容易在一行读取?

Ted*_*opp 7

我怀疑这两个代码片段在性能上有任何差异.有些人喜欢以更紧凑的方式编码.我个人认为第一个例子非常神秘; 甚至作者可能需要停下来,弄清楚六个月后重新阅读代码时会发生什么.

"有能力的程序员完全了解自己头骨的大小.因此,他完全谦虚地接近他的任务,并避免像瘟疫一样聪明的伎俩." - Edsger W. Dijkstra


Den*_*ret 7

不,没有真正的区别.对于大多数有经验的编码员来说,这可能是显而易见的,但我做了一个jsperf来证明这一点:http://jsperf.com/tetetetee

您无法看到任何可重现的差异.如果存在差异,那么在任何情况下都会如此之小以至于您无法可靠地测量它.

使用第一种形式的原因只是它写得更短,而且对于有经验的JavaScript编码器来说,读起来可能要短一些.在某些情况下,它可能有助于使代码更简洁或对称.我个人并不喜欢第一种形式,但我不推荐它,因为它会使大多数人更难阅读代码.