Heim >Web-Frontend >js-Tutorial >So passen Sie eine Rückruffunktion in jQuery an

So passen Sie eine Rückruffunktion in jQuery an

伊谢尔伦
伊谢尔伦Original
2017-06-16 14:59:592278Durchsuche

Übersetzen Sie zunächst „Rückruf“ aus der wörtlichen Bedeutung von Rückruf. Es ist verständlich, dass dies ein Mechanismus zum Aufrufen von Funktionen ist.

Wenn wir auf ein Substantiv stoßen, suchen wir möglicherweise zuerst nach Baidu und Google, um zu sehen, wie die offizielle Erklärung lautet

Das Folgende ist die Definition von Callback aus Wikipedia:

Ein Callback ist ein Stück ausführbaren Codes, der als Argument an anderen Code übergeben wird Es wird erwartet, dass das Argument zu einem geeigneten Zeitpunkt zurückgerufen (ausgeführt) wird

Hardübersetzung: Eine Rückruffunktion ist ein ausführbares Codesegment, das als Parameter einer anderen Funktion verwendet wird. Dieses Codesegment wird zu einem geeigneten Zeitpunkt ausgeführt

Beliebte Erklärung: Behandeln Sie die Funktion f2 als eine. Die Parameter werden an die Funktion f1 übergeben und f2 wird zum entsprechenden Zeitpunkt in f1 ausgeführt (ich verwende f1, f2 in allen folgenden Beispielen)

So wir kann ein Callback-Funktionsmuster wie dieses erhalten

function f1(f2) {    //f1要执行的一些代码
    if (f2 && typeof(f2) === "function") { //对f2做判断是否存在并且是一个函数        f2();
    }
}

Hier ist zu beachten, dass f2 in den beiden Parametern ein Zeiger auf die Funktion f2 ist, sodass auf f2 keine Klammern folgen können

, und auf f2 innerhalb von f1 müssen Klammern folgen, da wir zu diesem Zeitpunkt f2 aufrufen und ausführen müssen. Um f2()

zu schreiben, instanziieren wir dieses Muster und sehen uns das Ausführungsergebnis an

声明函数function f1(f2) {
alert("我是f1");if (f2 && typeof(f2) === "function") { //写上判断是个好习惯f2()
}
}
执行
f1(function() {
alert("我是f2");
})
结果://"我是f1",“我是f2”

Schauen wir uns den gesamten Funktionsausführungsprozess an. Beim Aufruf von f1(function(){alert( "I am f2");}) übergibt

zunächst eine anonyme Funktion an f1(), und diese anonyme Funktion ist Der Parameter f2 in der deklarierten Funktion wird von oben nach unten ausgeführt und dann f2();

Können wir es so schreiben?

function f1(f2) {    alert("我是f1");    if (f2 && typeof(f2) === "function") {  
        f2()
    }    alert("我又是f1 哈哈");
}
执行
f1(function(){
    alert("我是f2");
})//结果:我是f1 ,我是f2,我又是1 哈哈

Wenn wir uns die Definition von Rückrufen ansehen, können wir einen Rückruf durchführen. Wir führen ihn aus, wenn wir ihn ausführen möchten, ohne den Ausführungsfluss von f1 selbst zu beeinträchtigen

Aber aus Gründen der Kapselung und Schönheit , die meisten von uns werden es so schreiben

function f1(f2){ 
if (f2 && typeof(f2) === "function") {  
settimeOut(function(){f2()},1000) ;//f1执行1s后f2执行}
}function f2(){/**/}
f1(f2);

Tatsächlich ist die Rückruffunktion nicht so kompliziert. In js kann die Funktion als gewöhnlicher Parameter behandelt werden. Solange Sie danach () hinzufügen, bedeutet dies, dass diese Funktion aufgerufen wird.

Sehen Sie sich das folgende Beispiel noch einmal an

$(function(){
    function funcname(param){
        //do something
         
        //callback
        param.callback();    
    }
 
    //调用
    funcname({
        callback:function(){
            alert('callback do'); 
        }   
    });      
});

Aus dem obigen Beispiel ist auch ersichtlich, dass tatsächlich jedes Mal, wenn eine Funktion definiert wird, die Funktion zum Stapel hinzugefügt wird Container und der Index ist der Funktionsname. Der Standardwert ist unter dem Fenster, sodass Sie die Zeichenfolge dorthin werfen können. Sie können diese Rückruffunktion auch über die Zeichenfolge unter dem Fenster aufrufen.

Mit Parametern können Sie die obige Methode verwenden.

Zum Beispiel ermöglicht ein Beispiel in jQuery

$("#div1").fadeOut("fast",functin(){
    $("#div2").fadeIn("slow");
})

, dass #div schnell ausgeblendet und dann #div2 schrittweise angezeigt wird. Es gibt eine große Anzahl von Callback-Funktionen in jQuery

und es gibt eine spezielle Methode zum Verwalten von Rückrufen

jQuery.Callbacks = function( options ) {...}

Lassen Sie mich abschließend über die Rückrufe sprechen, die ich kürzlich in Projekten verwendet habe

Die Funktion einer Hybrid-App ist wahrscheinlich dass ich eine Anfrage an iOS sende und iOS zurückgibt. Gib mir die JSON-Daten und dann analysiere ich die zurückgegebenen Daten und füge sie in die Webseite ein

//首先我写一个javascript和ios通信callback函数(简化)getData(callback){
settimeOut(function(){callback(iso_return)},100);
}//然后我向ios发送一个请求function getSinersReuest(){window.location.href="vvmusic://....callback=getSinersData"}/*然后ios截获url中的callback执行getData(getSinersData)返回给我数据;我的getSinersData是我想把ios返回的json插入到页面显示8*/getSinersData(iso_return){
.........
}//当页面加载的时候调用window.onload=function(){
getSinersReuest();
}

Das obige ist der detaillierte Inhalt vonSo passen Sie eine Rückruffunktion in jQuery an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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