js權威指南中的記憶函數function memorize(f){ var cache = {}; return function(){ //為什么key要這樣賦值,如果arguments.length + arguments.join(",")這樣寫會報錯 var key = arguments.length + Array.prototype.join(arguments, ","); if(key in cache) return cache[key]; //apply()第二個參數是數組,arguments在這可以當作數組傳遞參數,那為什么在上面不能使用arguments.join(",") else return cache[key] = f.apply(this, arguments); }}function gcd(a, b){ return a + b;}var gcdmemo = memorize(gcd);gcdmemo(1, 2);
arguments
MYYA
2019-01-28 12:24:59