2015-07-06 3 views
7

Also legte ich gerade meine erste Pull-Anforderung auf einem kollaborativen Software-Projekt (ein Web-App mit Ember.js gebaut), und ich bemerkte, dass ich achtlos eine boolesche Variable enthalten war (bedingt Set innerhalb einer Funktion) in einem Objekt Literal nur die Variablennamen anstelle einem Schlüsselwertpaar, etwa so:Einstellung und eine boolean Objekt-Eigenschaft in JavaScript immer

function fruitStand() { 
    // do something here to decide if this basket is pretty, and if not.. 
    var prettyBasket = false; 

    var myObj = { 
    apples : 1, 
    oranges : 2, 
    prettyBasket 
    }; 

    return myObj; 

} 

ich war überrascht, daß die booleschen Zugriff später mit

var stand = fruitStand(); 
var truthy = stand.prettyBasket; 

scheint zu funktionieren , aber ist das gültige JavaScript? Sonst schlechte Form? Wird er mit so etwas wie prettyBasket : prettyBasket fühlt sich weniger trocken, wenn die oben ist OK.

+0

Wenn Sie Code für die öffentlichen Projekte sind einreichen, es ist wahrscheinlich eine gute Idee, sie durch eine Linter mit Einstellungen ausführen, um das Niveau von JS spec zu beschränken, die sie akzeptieren. –

Antwort

4

Du Verwendung unbeabsichtigt ein Merkmal ES6, speziell Stenografie Objektliteral Notation, die Sie mehr über here lesen kann.

Je nachdem, ob die Anwendung, an der Sie gerade arbeiten, mit Ember-cli erstellt wurde (und einen ES6-Transpiler verwendet) oder Sie eine normale Ember-Anwendung erstellen (möglicherweise ohne Transpilation), sollten Sie sich dessen bewusst sein Nur die neuesten Browser unterstützen diesen Code, sofern er nicht in die Standard-Objektliteralnotation umgewandelt wird.

Verwandte Themen