Gibt es Funktions- oder Leistungsunterschiede zwischen den beiden folgenden Blöcken?Unterschied zwischen Bindung mit Kartenindex oder Punktnotation
<foo ng-if="bar['qux']">
<foo ng-if="bar.qux">
Macht es einen Unterschied, ob bar.qux
ist/ist zunächst nicht definiert?
Hinweis: Ich verstehe vollständig, wie Objekte in reinem Javascript funktionieren. Dies ist keine Frage zu Javascript, es handelt sich um Unterschiede, die in AngularJS existieren könnten (wegen Parsing oder anderer Implementierungsdetails)
Vielleicht wird dies Ihre Frage beantworten. Siehe die Antwort des Benutzers Alp: https://Stackoverflow.com/a/17295727/1735789 –
Danke @RafaelGadottiBachovas. Aber wie gesagt, ich suche keine generische JS-Interpretation (sonst würde ich einfach mit Punktnotation gehen). –
Offenbar gibt es keinen signifikanten Leistungsunterschied zwischen Klammern und Punktnotation wie https://stackoverflow.com/a/30975165/4488121, aber ich weiß nicht über angularjs Ausdrucksparser, es könnte ein Problem sein. Aber von der funktionalen Seite können Sie mit der Klammernotation Eigenschaften verwenden, die mit ungültigen Bezeichnern wie bar ['2foo'] benannt sind, die Sie nicht mit Punktnotation ausführen können, die nur gültige Bezeichner unterstützt. –