2017-11-29 2 views
0

Für Kontext Sie die vollständige Klassendefinition @https://github.com/getify/You-Dont-Know-JS/blob/master/this%20%26%20object%20prototypes/ch6.mdVerständnis Javascript Grammatik: Benutzer = Benutzer | | this.getUser()

ich diesen besonderen Ausdruck unter "Einfachere Design"

LoginController.prototype.validateEntry = function(user,pw) { user = user || this.getUser(); //this is the statement I can't follow pw = pw || this.getPassword();

Wenn user = undefined oder user = "" gefunden zu verstehen, ich versuche finden, dann user = user //false. Für beliebige Zeichenfolgenwerte user = user //true. Aber in diesen Fällen werten user = user; auf den gleichen Wert wie einfach user;

1) gibt es eine zusätzliche Funktionalität durch user = user; statt nur user zu schreiben;?

2) Warum kann die JavaScript-Engine eine LHS-Zuweisung als booleschen Wert auswerten?

+0

Sie haben Ihre Operator-Priorität falsch. Es macht viel mehr Sinn, wenn Sie die Operationen in die richtige Reihenfolge bringen. – Quentin

Antwort

0

In Javascript, wenn Sie || tun es ist nicht unbedingt eine boolean zurückgibt, wird es den ersten nicht-Falsch Wert zurückgeben.

Es ist im Grunde Spruch user gesetzt der aktuelle Wert von user entweder, oder, falls dies ist null, falsch oder nicht definiert, stellen Sie ihn auf was auch immer this.getUser() zurückkehrt.

Verwandte Themen