(I) Methode und Attribut für dynamische Auswahl
In der tatsächlichen Arbeit begegnen wir häufig dieser Situation: Rufen Sie eine der beiden Methoden [1] nach einer bestimmten Bedingung an oder lesen und schreiben Sie Operationen auf eines der beiden Attribute [2]. Der folgende Code zeigt dies:
Die Codekopie lautet wie folgt:
if (Zustand) {
myobj.method1 (somearg);
} anders {
myobj.method2 (somearg);
}
JavaScript bietet eine einfache Syntax, die quadratische Halterungsoperatoren ([]) verwendet, um Methoden und Eigenschaften dynamisch auszuwählen. Wie im folgenden Code gezeigt, verfügt JavaScript über zwei äquivalente Syntax der Mitgliederzugriffszugang (diese Funktion ist in dynamischen Sprachen üblich):
OBJ [ExpressionResultingInMemberName] == Obj.MemberName
Wenn Sie Integer -Indexs verwendet haben, um in einem Array auf ein Element zugreifen zu können, haben Sie bereits mit der Verwendung von Square -Bracket -Operatoren begonnen, um die Auswahl der dynamischen Mitglieder zu treffen. Dies liegt daran, dass das Array -Objekt selbst Attribute (und Längenattribute) enthält, die nach dem Number -Index benannt sind. JavaScript ermöglicht es Ihnen jedoch nicht, diese Eigenschaften mit DOT -Operatoren () direkt zugreifen zu können, sodass myarray.0 syntaktisch illegal ist (es ist eine Schande, es ist eine coole Syntax).
Warum sind quadratische Klammerbetreiber leistungsfähiger als der Punktbetreiber -Notation? Dies liegt daran, dass Sie mit jedem Inhalt, der den Mitgliedsnamen in quadratischen Klammern darstellt, auf das Mitglied des Objekts zugreifen können. Dazu gehören Literale, Variablen, die Elementnamen, Namenskombinationen (meistens String -Spleißen) und schnelle wenn/dann mit der Auswahl unter Verwendung ternärer Operatoren (Bedingung? ValueIifTrue: ValueIffAlse). Alle diese Inhalte werden in eine Zeichenfolge verarbeitet, und dann verwendet JavaScript diese Zeichenfolge, um die entsprechenden Mitglieder zu finden.
Da eine Funktion in JavaScript selbst ein Objekt ist, kann sie wie andere Werte verwiesen werden. Wenn das Ergebnis eines Ausdrucks eine Funktion ist, können Sie ihn direkt mit dem Halterungsoperator aufrufen, genau wie Sie die Funktion direkt mit dem Funktionsnamen aufrufen.
Es ist zu beachten, dass, wenn Sie diesen Trick bei den Parametern, die Sie an die Methode übergeben, stark verwenden, die verwirrenden Klammern den Code möglicherweise schwer zu lesen machen können, und es ist klüger, die reguläre If/sonst zu diesem Zeitpunkt zu verwenden.
(Ii) Eigenschaften und Methoden von JavaScript -Traversalobjekten
JavaScript verwendet die für die in Anweisung, um die Eigenschaften und Methoden eines Objekts zu iterieren. Die in Anweisung schleifen jedes Mal ein JavaScript -Objekt.
Grammatik:
Die Codekopie lautet wie folgt:
für (Valuename in ObjectName) {
// Code
}
Wo der variable Name, der den Namen der Eigenschaft oder die Methode enthält.