arguments

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);


MYYA
浏览 419回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript