2

私はいくつかの縮小されたjavascriptコード(githubから)を見ていました、そしてコードは次のようなブロックを持っています

h = function(a, b, c, d) {
        var e, h, i, j, k, l, m = this;
        return i = $("#js-frame-loading-template").clone().show(), l = c === "back" ? 350 : 500, j = i.find(".js-frame-loading-spinner").hide() // more stuff here

returnステートメントの後に変数宣言があるので、なぜ/どのようにこのコードが機能するのか興味があります

4

1 に答える 1

6

コンマ演算子を紹介します

ステートメントの右側はすべて、returnコンマで区切られた複数の「サブ式」で構成される1つの式です。

return a, b, c, d;

各部分式は左から右に評価され、最後の部分の値は式全体の結果です。つまり、この場合、最後の式の結果が返されます(評価の結果と、例にd隠れているものは何でも// more stuff here)。

複数の表現を1つにまとめるのは「トリック」です。


Nitpick:

[...]returnステートメントの後に変数宣言があるため

その行には変数宣言はなく、代入式のみがあります。コンマ演算子(およびステートメント)は式でのみ機能し、ステートメントでは機能しないvarため、ステートメント(変数宣言)を含めることはできません。return

于 2013-01-02T21:20:17.657 に答える