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

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

js怎樣在一個函數中執行另一個函數

js怎樣在一個函數中執行另一個函數

瘋小蕾 2017-03-22 15:31:00
//比如我想要一個檢測算法的時間函數,并且把這個函數封裝起來,以便其他函數的調用,詳細說明:這里我定義了兩個數組,一個是10000以內的自然數數,另一個是10000以內能被7整除的數,然后我把兩個數組用一種算法(這里用最笨的雙遍歷那種算法)把兩個數組中的相同元素傳入另一個數組。最后調用時間檢測函數,查看這種算法的時間,但是有一個問題,就是如何在時間檢測函數的內部去執行他的參數(cufunc),也就是那個要檢測的函數。下面是代碼//這里是時間檢測函數function Time_detection(cufunc){ var start = new Date().getTime();//起始時間? console.log(cufunc);//這里并不能執行那個函數?。?var end = new Date().getTime();//接受時間return (end - start)+"ms";//返回函數執行需要時間}function main(arr1,arr2){ var arrn=new Array(); var k=0; for(i=0;i<arr1.length;i++){ for(j=0;j<arr2.length;j++){ if(arr1[i]==arr2[j]){ arrn.push(arr2[j]); } } }return arrn;}function matharr(){ var b=new Array;? for(i=0;i<10000;i++){ b[i]=i;} return b;?}function matharr2(){ var b=new Array; for(i=0;i<10000;i++){ if(i%7==0){b[i]=i} } return b;?}?var time=Time_detection(main(matharr(),matharr2()));? document.write(time)//然后如果知道更好的檢測函數執行時間的方法分享給我更好!謝謝!
查看完整描述

1 回答

已采納
?
Caballarii

TA貢獻1123條經驗 獲得超629個贊

console.log(cufunc);//這里并不能執行那個函數!!

這一行,首先分號寫成中文的了會報錯,其次,執行函數需要加括號,cufunc();

這樣還是出不了結果,是因為

var?time=Time_detection(main(matharr(),matharr2()));

你寫的這句話里面,main(matharr(),matharr2())這樣寫得到的結果是main函數里return的那個值,而不是main函數本身,你需要在那個計時函數里執行main,那就應該把main函數本身傳進去

var?time=Time_detection(main)

這樣,感受一下

var?time=Time_detection(main())

這樣和上面的區別,但main函數還需要參數,那我們需要用到bind方法

var?time=Time_detection(main.bind(this,matharr(),matharr2()));

這樣就可以得到結果了

查看完整回答
反對 回復 2017-03-22
  • 1 回答
  • 1 關注
  • 3563 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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