2015-10-06 10 views
5

znalazłem kawałek kodu w projekcie mojej firmy jak następuje:Co oznacza ta składnia, która lubi "functionName: {}"?

while(condition){   
     code... 

     reloop: { 
      if(somethingIsTrue) { 
       break reloop; 
      } 
     } 

     code... 
} 

Nie rozumiem co reloop robi, może ktoś dać proste wyjaśnienie?

+2

Jest to etykieta: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label –

+1

... a 'break' pozwala na wyrwanie się z etykiety: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/break – Jamiec

+2

Jest to także odpowiednik JavaScriptu Goto ... straszny zły (IMHO) –

Odpowiedz

3

reloop: jest label. Są one rzadko używane i służą bardzo konkretnemu celowi: umożliwiają uzyskanie pętli z pętli zewnętrzna .

Artykuł na temat MDN about labels wyjaśnia to lepiej.

Zauważ, że etykiety są bardzo rzadko stosowane, a większość czasu konieczności etykietę sugeruje, że kod jest niejasny i powinien zostać zrestrukturyzowane. Nigdy, ani razu, nie użyłem etykiety w javascript.

Unikaj ich, chyba że są naprawdę jedynym czystym rozwiązaniem kodu, który jest trudny do napisania. Zamiast tego należy podzielić kod na funkcje, z których można uzyskać return.

Powiązane problemy