《JavaScript模式》

 

/**
 * 在下一次调用该函数时就不用重做潜在的繁重工作
 */
var myFunc = function() {
    var cachekey = JSON.stringify(Array.prototype.slice.call(arguments)) // arguments转真正的数组 转JSON字符串
    var result

    if (!myFunc.cache[cachekey]) { // ES5的严格模式中并不支持arguments.callee
        result = {}
        result.year = 2014
        // 开销很大的操作
        myFunc.cache[cachekey] = result
    }

    return myFunc.cache[cachekey]
}

myFunc.cache = {}

console.log(myFunc('a', '2014'))