1. 程式人生 > >設計一個函數,它接受不定數量的參數,這是參數都是函數。這些函數都接受一個回調函數作為參數,按照回調函數被調用的順序返回函數名

設計一個函數,它接受不定數量的參數,這是參數都是函數。這些函數都接受一個回調函數作為參數,按照回調函數被調用的順序返回函數名

push div var func 參數 log accep 母函數 定義

        function acceptFuncs() {
            var fnNames = []; //定義數組字面量,用來保存函數名稱

            for (var i = 0; i < arguments.length; i++) { //for循環檢測接收到的每個參數是否為函數,是則傳遞回調函數給它,最後所結果壓入數組中
                if (typeof arguments[i] === "function") { 
                    fnNames.push(arguments[i](callback));
                }
            }
            
for (var i = 0; i < fnNames.length; i++) { //逐個打印函數名稱 alert(fnNames[i]); } } //回調函數,返回調用它的母函數的函數名稱 function callback() { return arguments.callee.caller.name; } //測試函數 function test1(fn1) { if (typeof
fn1 === "function") return fn1(); } function test2(fn1) { if (typeof fn1 === "function") return fn1(); } function test3(fn1) { if (typeof fn1 === "function") return fn1(); } //調用測試
acceptFuncs(test1,test2,test3);

別人提的問題,試著答了下,測試成功:

設計一個函數,它接受不定數量的參數,這是參數都是函數。這些函數都接受一個回調函數作為參數,按照回調函數被調用的順序返回函數名