亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScript:將函數作為參數傳入,作為回調函數?

JavaScript:將函數作為參數傳入,作為回調函數?

猛跑小豬 2019-02-13 15:07:48
function doSomething(args,callback){somethingComplicated(args);callback();}doSomething(function onEnd(){compute();});湖上這個代碼是不是有問題呢?這樣調用doSomething,里面傳入的函數會被當做第一個參數args,而不會映射到第二個形參callback啊,豈不是不對?費解
查看完整描述

2 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

調用函數時, 傳遞入的參數與順序必須按照函數聲明來排列, 所以調用doSomeThing時:

123456789101112131415function doSomething(args,callback){   somethingComplicated(args);   callback();}//第一個參數如果不需要傳遞,可設置為null//function onEnd(){} 這種方法通常是聲明一個函數, 將函數作為參數傳遞可直接傳遞函數名稱,或者傳遞匿名函數//傳遞函數名稱function onEnd(){//code}doSomething(null, onEnd);//傳遞匿名函數doSomething(null,function(){   compute();});


查看完整回答
反對 回復 2019-03-17
?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

你可以改寫doSomething函數的實現,如果第一個入參是函數就認為是回調函數,要看你想實現什么功能。

1234567function doSomething(args,callback){    somethingComplicated(args);    if(arguments.length==1 && 'function'==typeof args){        callback = args;    }    if(callback) callback();}



查看完整回答
反對 回復 2019-03-17
  • 2 回答
  • 0 關注
  • 2251 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號