function doSomething(args,callback){somethingComplicated(args);callback();}doSomething(function onEnd(){compute();});湖上這個(gè)代碼是不是有問(wèn)題呢?這樣調(diào)用doSomething,里面?zhèn)魅氲暮瘮?shù)會(huì)被當(dāng)做第一個(gè)參數(shù)args,而不會(huì)映射到第二個(gè)形參callback啊,豈不是不對(duì)?費(fèi)解
2 回答

慕工程0101907
TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
調(diào)用函數(shù)時(shí), 傳遞入的參數(shù)與順序必須按照函數(shù)聲明來(lái)排列, 所以調(diào)用doSomeThing時(shí):
123456789101112131415 | function doSomething(args,callback){ somethingComplicated(args); callback(); } //第一個(gè)參數(shù)如果不需要傳遞,可設(shè)置為null //function onEnd(){} 這種方法通常是聲明一個(gè)函數(shù), 將函數(shù)作為參數(shù)傳遞可直接傳遞函數(shù)名稱(chēng),或者傳遞匿名函數(shù) //傳遞函數(shù)名稱(chēng) function onEnd(){ //code } doSomething( null , onEnd); //傳遞匿名函數(shù) doSomething( null , function (){ compute(); }); |

阿晨1998
TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊
你可以改寫(xiě)doSomething函數(shù)的實(shí)現(xiàn),如果第一個(gè)入?yún)⑹呛瘮?shù)就認(rèn)為是回調(diào)函數(shù),要看你想實(shí)現(xiàn)什么功能。
1234567 | function doSomething(args,callback){ somethingComplicated(args); if (arguments.length==1 && 'function' == typeof args){ callback = args; } if (callback) callback(); } |
- 2 回答
- 0 關(guān)注
- 2247 瀏覽
添加回答
舉報(bào)
0/150
提交
取消