鍍金池/ 問答/HTML/ 使用回調(diào)函數(shù)作為可選參數(shù)

使用回調(diào)函數(shù)作為可選參數(shù)

是這樣的 目前寫一個(gè)方法
function a(c, callback) {
callback()
}
我在別的地方調(diào)用這個(gè)方法的時(shí)候,這個(gè)參數(shù)callback作為可選參數(shù),在有些地方調(diào)用的時(shí)候不寫這個(gè)callback,我不想每一個(gè)a方法都需要回調(diào)方法。問下各位這個(gè)要這么辦,可以es6,在下js小白 ,謝謝大家

回答
編輯回答
尛曖昧

判斷可選參數(shù)是否存在

function a(c, callback) {
   if(callback && typeof callback === "function"){
       callback();
   }
}

樓上方法也行,如果沒有傳可選參,則給出一個(gè)默認(rèn)值

2018年8月19日 19:21
編輯回答
只愛你

是這樣的,如果你不想用,就可以不寫這個(gè)參數(shù)。
直接寫 a(c)就可以了。
不過回調(diào)函數(shù)的正確姿勢(shì)我覺得應(yīng)該是下面這樣的。
比如 ,funciton test(a,callback){
callback(a);
};
還有我實(shí)在想不到你在什么地方不要回調(diào)函數(shù),除非你把邏輯寫在了聲明的函數(shù)里面。

2018年7月15日 08:50
編輯回答
朽鹿

簡(jiǎn)單的話:

function a(c, callback) {
    callback&&callback()
}
2018年9月9日 23:51
編輯回答
絯孑氣

這個(gè)問題就是可選參數(shù)使用的問題。

function a() {
    var args = [];

    for(var i = 0; i < arguments.length; ++i) {
        args[i] = arguments[i];
    };

    if(typeof args[args.length-1] === 'function') {
        args[args.length-1]()
    }
    // 那些可選的參數(shù)要用條件判斷,必須的參數(shù),一次從args數(shù)組用調(diào)用即可
}

使用arguments對(duì)象來寫,雖然有點(diǎn)麻煩,但是很好用。
使用ES6 更簡(jiǎn)單a = (...args) => { }

2017年4月8日 04:13
編輯回答
若相惜
function a(c, callback = () => {}) {
callback()
}
2017年10月13日 22:15
編輯回答
帥到炸
function a(c, callback = () => {}) {
//其他關(guān)于c參數(shù)的語句處理
callback()
}
2018年3月26日 18:24