Heim > Web-Frontend > js-Tutorial > Implementierung einer JQuery-Funktionsmethode mit einer Funktion

Implementierung einer JQuery-Funktionsmethode mit einer Funktion

巴扎黑
Freigeben: 2017-06-25 11:13:04
Original
1895 Leute haben es durchsucht

Es gibt eine Methode in

jquery: one, die verwendet wird, um das -Ereignis automatisch zu entbinden, erst nachdem es einmal ausgeführt wurde. Nachdem ich mir den Quellcode lange angesehen hatte, wurde mir schwindelig, also beschloss ich, selbst einen zu erstellen. Nachdem ich es lange studiert hatte, simulierte ich es einmal mit Native. Der Name, den ich verwendet habe, war einmal.

Die ursprüngliche Methode sieht so aus:

function once(dom, event, callback) {
    // 这一步是为了避免修改形参
    var temp = callback;
    dom.addEventListener(event, function() {
        if(temp)
            temp();
        temp = null;
    })
}
Nach dem Login kopieren


Diese Methode ist möglich, aber es gibt ein Problem: EreignisverarbeitungFunktionEs existiert immer noch, es führt einfach nichts aus und wird mit der Zeit sehr aufgebläht.

Die Alternative besteht darin, sich selbst in der Handler-Funktion zu entsperren, aber wenn Sie anonyme Funktion verwenden, geraten Sie in eine schrecklich unendliche Rekursion.

Die Verwendung von variablem Speicher kann das Problem lösen.

function once(dom, event, callback) {
    var handle = function() {
        callback();
        dom.removeEventListener(event, handle);
    }
    dom.addEventListener(event, handle)
}
Nach dem Login kopieren

Dies ist ein Stück Freizeitunterhaltung, ich hoffe, es kann einigen Menschen helfen.

Das obige ist der detaillierte Inhalt vonImplementierung einer JQuery-Funktionsmethode mit einer Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage