Mit der Entwicklung der Zeit gesehen die JavaScript-Camp hat mehr ausgezeichneten Rahmenbedingungen, sollte unserer Entwicklungsarbeit erheblich vereinfachen, wenn wir diese Frameworks verwenden kein Trinkwasser, darüber nachzudenken, wie sie gebaut werden? Wenn Sie nicht zufrieden mit nur einige ab Lager sind erfolgt APIS, aber tiefes Verständnis ihrer internen Umsetzungsmechanismen (APIS sind die schnellsten entwertend Sache, wie jemand sagt), der beste Weg, ihren Quellcode zu lesen Sie es lesen.
Ich habe für die letzten zwei Tage daran gearbeitet.JQueryDer Source-Code, hier werden einige meiner flachen Verständnis zu verteilen, unsachgemäße Ort bitte korrekt. Nun, hier ist ein Blick auf die Funktionsweise von jQuery wahrscheinlich, und ich nehme an, Sie haben bereits einige grundlegende Javascript-Kenntnisse, und wenn die Grundlagen nicht ausreichen, ich empfehle die Lektüre der beiden Bücher, "JavaScript Advanced Programming" und "Verständnis JavaScript." Dieser Artikel eignet sich nicht für die JS innerhalb der Klasse, Objekte, Funktionen, Prototypen und andere Konzepte weiß nicht die Freunde.
Von Anfang beginnen wir mit den Worten:
Zuerst konstruieren Sie ein Objekt für den Benutzer, unter der Annahme, dass unser Framework heißt Shaka (mein Name);
Var Shaka = Funktion () {}; Hier erstellen Sie eine leere Funktion mit nichts drin, und diese Funktion ist eigentlich unser Konstruktor. Damit das Objekt wir generieren, um in der Lage zum Aufrufen der Methode im Prototyp definiert werden, müssen wir einige Methoden hinzufügen Shaka gewissermaßen Prototyp (man denke an Shaka als Klasse) und definieren:
Shaka.Fn = Shaka.prototype = {};
Die Shaka.fn hier ist gleichbedeutend mit der Alias des Shaka.prototype, die später einfach zu bedienen ist, und sie verweisen auf die gleiche Referenz.
OK, fügen Sie eine Methode SayHello Shaka, einen Parameter hinzufügen, so dass dieses Rahmens das grundlegende Erscheinungsbild bereits, hat wenn es Leben hat, dann es ist 1 Jahr alt, betrachten Sie nun den Code:
Ausführen von Code-Box
≪ Script Type = "Text/Javascript" > Var Shaka = Funktion (Alter) {this.age = Alter;}; Shaka.Fn = Shaka.prototype = {Sayhello:function () {Alert ("Ich bin ein kleines Baby, ich bin" + this.age + "Jahre alt."); {}}; Var BabyShaka = neue Shaka (1), babyShaka.sayHello (); < / script >
[Strg + A alle Auswahl-Tipps: Sie können einige der Code zuerst ändern, und drücken Sie dann laufen]
Nun, nicht aufregen, bemerkten wir, dass es gibt einige Unterschiede zwischen diesem Framework und jQuery verwendet, wie in JQ können wir dies schreiben:
JQuery ('#myid'). SomeMethod ();
Wie kommt es, das heißt, dazu kehrt diesen Konstruktor eine Objektinstanz von jQuery, so wir seine Methode, nennen können also die Shaka-Konstruktor eine Instanz zurückgeben sollte, die wie folgt aussieht (jQuery):
Var Shaka = Function () {return / / kehrte Shaka;};
Wie erhalten wir ein Beispiel für eine Shaka, betrachten wir zunächst die Var SomeObj = new MyClass (), bei Verwendung der Prototyp-Methode zur Simulation der Klasse; Dies ist eigentlich die Zeit, um ein neues Objekt SomeObje, um das neue Objekt als diesen Zeiger verwenden, um anzurufen MyClass-Funktion, der Konstruktor der Klasse, und dann SomeObj in der MyClass.prototype definierte Methode zu erstellen, Dieser Zeiger innerhalb dieser Methoden bezieht sich auf die aktuellen Objektinstanz.