var a, b, c = {}

Ho pensato che la sintassi:

var a, b, c = {};

vorrebbe dire che le tre variabili sono separato, non i riferimenti allo stesso {}.

È questo, perché {} è un oggetto e questo è il comportamento standard?

Quindi se io faccio:

var a, b, c = 0;

tre sarebbe effettivamente separati e non riferimenti?

Grazie,
Wesley

  • u può spiegare di più non riesco a ottenere il punto
  • Non riesco a capire. Nel tuo primo esempio, a e b sono undefined. Che cosa vuoi dire ?
  • Vuoi dire var a = b = c = {};
InformationsquelleAutor Wesley | 2011-08-04

 

6 Replies
  1. 11

    Non dovrebbe essere lo stesso, no. Solo c sarà assegnato il valore.

    a e b sarebbe solo dichiarato, ma non inizializzata a nulla (sarebbe indefinito). c sarebbe, come solo uno di loro, essere inizializzato {}

    Forse è più chiaro se scritti su diverse linee:

    var a,      //no assignment
        b,      //no assignment
        c = {}; //assign {} to c
  2. 4
    var a, b, c = {};

    Questo dichiaro il 3 variabili (a, b, c) ma definire solo 1 variabile (c).

    var a, b, c = 0;

    Questo dichiaro il 3 variabili (a, b, c) ma definire solo 1 variabile (c).

  3. 0

    var a, b, c = {}; definisce solo l’ultimo var cioè c. e ‘ simile alla sintassi var a = {}, b = [], c = 0;

    è solo brevi mano per dichiarare più variabili.

  4. 0

    Utilizzando coma a variabili separate consente di definire variabili multiple nello stesso ambito più compatto. Nel tuo esempio, però, solo c = {} e a e b sarebbe undefined. Si potrebbe utilizzare una simile costruire per assegnare qualcosa di simile

    var a = {first: 'foo'}, 
        b = {second: 'bar'}, 
        c = {third: 'foobar'};

    che sarebbe pari a

    var a = {first: 'foo'}, b = {second: 'bar'}, c = {third: 'foobar'};

    e anche per

    var a = {first: 'foo'};
    var b = {second: 'bar'};
    var c = {third: 'foobar'};

    E di ognuno di riferimento per i loro rispettivi oggetti. Utilizzando comas è fondamentalmente solo un aspetto visivo.

  5. 0

    Sì, i tre sarebbero separati.

    L’operatore virgola valuta l’operando di sinistra, quindi, valuta l’operando di destra, quindi restituisce il valore dell’operando di destra.

    Questo rende un bel modo per dichiarare un sacco di variabili in una riga, se appena si basano sulla valutazione degli operandi e non fare nulla con il valore restituito.

    var i = 0, j = 1, k = 2; è praticamente equivalente a var i = 0; var j = 1; var k = 2

    Un altro uso per questo è quello di spremere più operazioni su una linea senza l’utilizzo di ;, come in un ciclo for con più loop variabili:

    for(var x=0,y=5; x < y; x++,y--)

    Notare come sia x++ e y– può essere eseguita sulla stessa linea.

Lascia un commento