1、回調函數:把一個方法A當一個參數值傳遞到另外一個函數B中,在B執行的過程當中我們隨時根據需求讓A方法執行;
什么是回調 :它是異步編程基本的方法,需要異步處理的時候一般采用后續傳遞的方式,將后續邏輯作為起始函數的參數。
PS:典型的異步方法有:setTimeout,回調函數,ajax,事件;
回調函數: function A (){ } function B (fn) { fn(); fn(); } B(A);
2、數組sort()方法中回調函數實現排序的原理:
var arr = [2,34,242,12,3,2,23,3];// 定義一個數組 arr.sort(function (a,b) { // a -->代表每一次執行匿名函時候,找到的數組中的當前項; // b -->代表當前項的后一項; return a - b; // 升序時: 如果a>b,那么返回的值>0,a和b交換位置;
return b - a; // 降序時: 如果b>a,那么返回的值>0,a和b交換位置; //-> 原理:return的值可能是一個大於0的數也或者可能是小於等於0的數,如果return后的值大於0則讓數組a和b交換一下位置;小於等於0,則原來數組中的位置不變; return 1; // 表示不管a和b誰大,每一次都返回一個恆大於0的數,也就是說每一次a和b都要交換位置,最后的結果就是原有數組倒過來排列了,相當於數組的reverse()方法; })
PS:以上寫法如有錯誤歡迎指正,^^