Ich lese den knockout.js-Quellcode durch diese Zeile
%Vor% Ich habe das noch nie gesehen und alles, was ich über Javascript weiß, sagt, dass es keinen Fall gibt, wenn die beiden Seiten von ||
anders wären. Warum könnte das KO-Team dieses Konstrukt benutzen?
Dies ist das Ergebnis von Symbolmangulationen, die vom Closure Compiler ausgeführt werden. In den Closure-Compiler-Dokumenten :
Closure Compiler-Kompilierung ändert niemals String-Literale in Ihrem Code, nein Egal welche Kompilierungsstufe Sie verwenden. Dies bedeutet, dass die Kompilierung mit ADVANCED_OPTIMIZATIONS behandelt Eigenschaften unterschiedlich abhängig davon, ob Ihre Code greift auf sie mit einem String zu. Wenn Sie Zeichenkettenreferenzen mit einer Eigenschaft mischen Bei Dot-Syntax-Referenzen benennt Closure Compiler einige der Referenzen auf diese Eigenschaft, aber nicht andere. Daher wird Ihr Code wahrscheinlich nicht ausgeführt richtig.
Die Verwendung der Punktsyntax und des Zeichenfolgenliterals ist die "sichere" Möglichkeit, dies zu umgehen, da dadurch sichergestellt wird, dass ein Client, der einen nicht exportierten Teil der API verwendet, aber nicht den Abschlusscompiler für seinen eigenen Code verwendet Probleme.
Tags und Links knockout.js javascript