Als dynamische Sprache hat Objekt JS in JavaScript eine beträchtliche Freiheitsgrade in der Syntax, sodass es eine Funktions- und N -Schreibstile erstellt.
In JS gibt es im Allgemeinen zwei Möglichkeiten, OOP zu implementieren:
Das erste: Verwenden Sie dieses Schlüsselwort
Funktionsklasse1 ()
{
this.onclick = function (e)
{
für (vari = 0; i <1000; i ++)
{
vara = newdate ();
}
}
}
Verwenden. Die Methode kann Objekte flexibel zu Eigenschaften und Methoden hinzufügen, und sie ähnelt den meisten OOP -Sprachen und kann sogar während des Betriebs hinzugefügt werden.
Der zweite Typ: Verwenden Sie Prototyp -Schlüsselwörter
FunktionClickfunc (e)
{
für (vari = 0; i <1000; i ++)
{
vara = newdate ();
}
}
FunktionCLASS2 ()
{
}
Class2.Prototype.onclick = clickFunc;
In Bezug auf die Nutzung gibt es keine erste, die flexibel erscheint. Bevor ein Objekt jedoch neu ist, können Sie jederzeit auch die Eigenschaften und Methoden eines Objekts hinzufügen.
Aber sie sind nicht gleich. Relativ gesehen bevorzuge ich die erste, da die erste Methode relativ konzentriert ist und den Code leichter zu lesen ist. Beim Laufen variiert ihre Betriebseffizienz jedoch stark. Schauen wir uns den folgenden Testcode an:
vartotal = newArray ();
funktionsest1 ()
{
vara = newdate ();
für (vari = 0; i <10000; i ++)
{
varc = newClass1 ();
//total.push(c);
}
varb = newDate ();
Alert (b.GetTime ()-a.getTime ());
}
Funktionstest2 ()
{
vara = newdate ();
für (vari = 0; i <10000; i ++)
{
varc = newClass2 ();
//total.push(c);
}
varb = newDate ();
Alert (b.GetTime ()-a.getTime ());
}
Der erste Schritt besteht darin, die Ausführungszeit zu testen: Es wird festgestellt, dass Test1 () 142 ms dauert, während Test2 () nur 50 ms dauert. In Bezug auf die Zeiteffizienz ist die Prototypmethode effizienter als diese.