7

次の例を考えます。

var foo = {
    root:
        ({
            key1: "Value1",
            key2: "Value2",
            key3: "Value3"
        })
    };

以下と比べて何が違うの?

var foo = {
    root:
        {
            key1: "Value1",
            key2: "Value2",
            key3: "Value3"
        }
    };

最初の例では、オブジェクトを囲む追加の括弧があります。これはどのような目的に役立ちますか? スコーピングと何か関係がありますか?それは何らかの形で実行に影響を与えますか? ありがとうございました!

4

3 に答える 3

7

ここにはまったく違いはありません。

私の知る限り、コンソールでオブジェクトリテラルを評価するときは違いがあります

于 2012-09-20T09:03:44.597 に答える
2

彼らは何もしません:)読みやすさのためにそこにいますが、その目的を達成するかどうかは疑問です.

于 2012-09-20T09:03:55.220 に答える
2

私によると、角括弧を使用してオブジェクトを収集する必要があります。JavaScript はそれが配列であることを理解するからです。

丸括弧 (例 1 で使用) は、javasript パーサーによって検証されるだけです。アクセスしようとすると、java スクリプトは丸括弧内の最後のオブジェクトのみを返します (スタックの一番上のオブジェクトなど)。

以下のスクリプトを試してください

var foo = {
    root1:
        {
            key1: "Value1",
            key2: "Value2",
            key3: "Value3"
        },
    root2:({
            key4: "Value4",
            key5: "Value5"
          },{
            key6: "Value6",
            key7: "Value7"
        }),
    root3:[
         {
            key8: "Value8",
            key9: "Value9"
          },{
            key10: "Value10",
            key11: "Value11"
          }
    ]
    };
    console.log(foo['root1']);  // returns object { key1, key2, key3}
    console.log(foo['root2']);  // returns only { key6,key7}
    console.log(foo['root3']);  //returns [ {key8,key9},{key10,key11}]
于 2012-09-20T09:34:37.320 に答える