亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

JS回調函數原理與用法詳解【附PHP回調函數】

2024-05-06 16:53:29
字體:
來源:轉載
供稿:網友

本文實例講述了JS回調函數原理與用法。分享給大家供大家參考,具體如下:

JS回調函數

何為回調函數,官方解釋:當程序跑起來時,一般情況下,應用程序(application program)會時常通過API調用庫里所預先備好的函數。但是有些庫函數(library function)卻要求應用先傳給它一個函數,好在合適的時候調用,以完成目標任務。這個被傳入的、后又被調用的函數就稱為回調函數(callback function)。

通常將一個函數B傳入另一個函數A,并且在需要的時候再調用函數A。

說白了,回調就是回溯,先定義好將要使用的函數體,然后在使用使再調用這個函數,我們通常把callback作為一個參數傳入先定義的那個函數。下面我們先來看一段jquery代碼:

$("p").hide(1000,function(){alert("The paragraph is now hidden");});

上面jquery就是一個回調函數,首先它在執行完hide效果后,接著調用function回調函數。

我們再來看一段JS代碼,看看回調函數是如何實現的:

function Buy(name,goods1,callback) {  alert(name+' buy '+goods1);  if(callback&&typeof(callback)==="function")    callback();}Buy('xiaoming','apple',function(){  alert("shopping finish");});

一個很簡單的代碼,一開始不知道要買啥,等到買到東西,立即把之前定義好的函數調用出來,最好加上判斷規則,因為一切前提是callback必須是一個函數,輸出結果為:

xiaoming buy apple
shopping finish

閉包與回調

下面看一道閉包的題目,分別點擊第一個和第四個節點,執行結果:

var nodes = document.getElementsByTagName('button');for (var i = 0; i < nodes.length; i++) {  nodes[i].addEventListener('click', function() {    console.log('You clicked element #' + i);  });}

這里雖然主要考的是閉包,addEventListener是一個閉包,而匿名函數是一個回調函數,i是在閉包中的變量。在addEventListener的回調執行時,循環已經結束,此時的變量i被賦值為node.length,node.length為總節點數。所以結果就是

You clicked element # node.length

那要怎么改,將其返回值改成函數,既然i變量的值會被釋放,那我們就引入i,讓每次循環的值都保存在內存中,就可以了:

var nodes = document.getElementsByTagName('button');for (var i = 0; i < nodes.length; i++) {(function(i) {  nodes[i].addEventListener('click', function () {    console.log('You clicked element #' + i);    })  })(i);}

PHP回調函數

下面略說一下php中回調函數如何實現(結果為1,2,3,4):

<?php  $array=array(1,2,3,4);  array_walk($array,function($value){    echo $value;});?>

php對每個傳入的數組元素作回調處理,下面再看看php的閉包,使用use關鍵字繼承作用域外的變量:

<?php  function getcouter(){    $i=0    return function() use($i)(      echo $i;    )};  }  $counter=getcounter();  echo $counter();  echo $counter();?>

返回結果為:

1,1
1

官方php使用方法

class hello {function callback($a,$b) {echo "$a,$b";}static function callback($c,$d){echo "$c,$d";}}//將類名作為參數call_user_func(array('hello','callback'),"hello","world");//輸出 hello,world//將對象作為參數call_user_func(array(new hello(),'callback'),"hello","world");//將靜態方法作為參數call_user_func(hello::callback,"hello","world");//輸出 hello,world

其實就原理來說,JS和php都是差不多的,都是先定義好函數,然后需要的時候就調用過來。

希望本文所述對大家JavaScript程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲人a成www在线影院| 国产精品一区二区电影| 青青久久aⅴ北条麻妃| 欧美成人在线免费| 一区二区三区视频免费| 欧美电影在线观看完整版| 97在线观看视频国产| 国产精品久久久999| 欧美在线观看视频| 亚洲最大激情中文字幕| 欧美放荡办公室videos4k| 亚洲色图25p| 亚洲香蕉成人av网站在线观看| 国产91精品久久久| 国产精品久久网| 欧美xxxx14xxxxx性爽| 亚洲a级在线观看| 日韩综合视频在线观看| 国产日产欧美精品| www欧美xxxx| 国产精品一区二区三区毛片淫片| 91精品国产自产91精品| 欧美性69xxxx肥| 精品中文字幕在线2019| 亚洲男人天堂手机在线| 日韩资源在线观看| 日韩精品www| 亚洲精品福利资源站| 欧美在线欧美在线| 国产精品jvid在线观看蜜臀| 亚洲精品永久免费精品| 国产精品久久久久久久app| 亚洲第五色综合网| 国产欧美精品日韩精品| 国产成人欧美在线观看| 亚洲视频专区在线| 国产噜噜噜噜久久久久久久久| 欧美性视频在线| 亚洲天堂久久av| 久久噜噜噜精品国产亚洲综合| 日日狠狠久久偷偷四色综合免费| 欧美激情手机在线视频| 日韩精品中文字幕久久臀| 在线成人一区二区| 亚洲黄在线观看| 久久视频在线播放| 午夜免费久久久久| 国内精品久久久久伊人av| 亚洲人午夜精品免费| 久久这里只有精品视频首页| 国产精品视频yy9099| 高清日韩电视剧大全免费播放在线观看| 亚洲性猛交xxxxwww| 日韩av一区在线| 日本aⅴ大伊香蕉精品视频| 欧美黑人巨大xxx极品| 久久久精品视频在线观看| 欧美区二区三区| 日本aⅴ大伊香蕉精品视频| 欧美日韩国产丝袜另类| 亚洲香蕉伊综合在人在线视看| 国产精品第七十二页| 亚洲欧美视频在线| 国产欧美日韩视频| 91麻豆桃色免费看| 亚洲人成电影网站| 日韩网站免费观看高清| 亚洲毛片在线观看| 欧美日韩国产色| 宅男66日本亚洲欧美视频| 国产精品久久婷婷六月丁香| 97在线看免费观看视频在线观看| 午夜精品免费视频| 九九视频这里只有精品| 日韩欧美在线视频日韩欧美在线视频| 欧美精品在线免费播放| 黄色一区二区三区| 国产精品成人av性教育| 亚洲视频网站在线观看| 国产精品美女无圣光视频| 欧美日韩午夜视频在线观看| 欧美激情一区二区三级高清视频| 91精品久久久久久久久| 狠狠做深爱婷婷久久综合一区| 欧美裸体xxxx极品少妇软件| 欧美精品在线看| 7777免费精品视频| 国产精品一区二区久久久久| 亚洲人成电影在线| 久久精品夜夜夜夜夜久久| 高跟丝袜一区二区三区| 8090理伦午夜在线电影| 97精品视频在线| 美女福利精品视频| 欧美国产乱视频| 欧美国产视频一区二区| 国产欧洲精品视频| 91精品国产自产在线观看永久| www.亚洲男人天堂| 亚洲成人xxx| 国产91精品久久久| 国产精品久在线观看| 红桃av永久久久| 日韩欧美aaa| 青青久久av北条麻妃海外网| 国产精品免费小视频| 成人网中文字幕| 日本亚洲精品在线观看| 97人人爽人人喊人人模波多| 国产欧美日韩精品在线观看| 日韩av中文字幕在线| 视频一区视频二区国产精品| 日本免费久久高清视频| 永久免费看mv网站入口亚洲| 欧美高清在线观看| 97久久精品人人澡人人爽缅北| 福利精品视频在线| 亚洲欧美自拍一区| 精品国产区一区二区三区在线观看| 亚洲成**性毛茸茸| 国内精品视频在线| 国产精品aaa| 69久久夜色精品国产69| 国产精品久久久久久久久久久久| 在线观看免费高清视频97| 欧美整片在线观看| 亚洲精品欧美日韩| 欧美性猛交xxxx免费看漫画| 亚洲成人999| 久久亚洲影音av资源网| 久久久免费av| 国产v综合ⅴ日韩v欧美大片| 国产精品91在线| 亚洲成在人线av| 欧美日本啪啪无遮挡网站| 超碰91人人草人人干| 久久99精品久久久久久青青91| 亚洲欧美日韩另类| 亚洲成人av中文字幕| 92福利视频午夜1000合集在线观看| 久久久精品中文字幕| 91精品视频免费看| 精品亚洲男同gayvideo网站| 国产香蕉精品视频一区二区三区| 色综合久久悠悠| 欧美激情免费看| 啊v视频在线一区二区三区| 一道本无吗dⅴd在线播放一区| 国外成人在线播放| 日产精品99久久久久久| 日韩av电影国产| 欧美日韩亚洲一区二区| 欧美疯狂xxxx大交乱88av| 欧美亚洲成人精品| 亚洲一区久久久| 色综合伊人色综合网| 欧美久久久精品| 国产精品中文字幕在线| 色综合久久天天综线观看| 亚洲福利视频专区| 91九色单男在线观看| 亚洲综合国产精品| 成人高清视频观看www| 国产成人avxxxxx在线看|