1

したほうが早いか

(obj = {})[key] = val;

それから

obj = {}
obj[key] = val;

?

それとも、1 行で読みやすくするためにこれを行っているだけですか?

4

5 に答える 5

7

いいえ、本当の違いはありません。ほとんどの経験豊富なコーダーにはおそらく明らかですが、それを証明するために jsperf を作成しました: http://jsperf.com/tetetetee

再現可能な違いは見られません。差があるとしても、それはいずれにせよ非常に小さいため、確実に測定することはできません。

最初の形式を使用する理由は、単に書くのが短く、経験豊富な JavaScript コーダーにとっては読むのも少し短いからです。場合によっては、コードをより簡潔または対称にするのに役立つ場合があります。個人的には最初の形式は嫌いではありませんが、ほとんどの人にとってコードが読みにくくなるため、お勧めしません。

于 2013-07-28T18:57:28.953 に答える
7

2 つのコード フラグメントのパフォーマンスに違いがあるとは思えません。よりコンパクトな方法でコーディングすることを好む人もいます。個人的には、最初の例は恐ろしく不可解だと思います。作成者でさえ、6 か月後にコードを読み直したときに、何が起こっているのかを理解する必要があるかもしれません。

「有能なプログラマーは、自分の頭蓋骨のサイズが限られていることを十分に認識しています。したがって、彼は完全に謙虚に自分の仕事に取り組み、ペストのような巧妙なトリックを避けます。」— エドガー・W・ダイクストラ

于 2013-07-28T18:55:22.037 に答える
1

2 つのスニペットに違いはないと思います。2 番目のスニペットは、最初のスニペットに比べて読みやすいです。

于 2013-07-28T18:56:03.770 に答える
0

2 つはまったく同じことを行います。単一行バージョンは、ユーザーが明示的に行うのではなく、圧縮/ミニファイヤが内部的に行う/行うべきものです。私の意見ではあまり読めません。

于 2013-07-28T19:01:49.197 に答える