剛開始以為樓主需要的是這個一個只執(zhí)行一次的函數(shù)functiononce(func){varran,result;if(!isFunction(func)){thrownewTypeError(funcErrorText);}returnfunction(){if(ran){returnresult;}ran=true;result=func.apply(this,arguments);//clearthe`func`variablesothefunctionmaybegarbagecollectedfunc=null;returnresult;};}functiontest(){alert('coinxu')}varnewTest=once(test)newTest()newTest()copyfromlodash.once不過還是給出你的答案functiontest(){alert('coinxu')}varonce=(function(){varmemo={},i=0;returnfunction(fn){for(varkeyinmemo){//匿名函數(shù)支持if(memo[key].func===fn||memo[key].func.toString()===fn.toString()){returnmemo[key].result}}i+=1varresult=fn()memo[i]={func:fn,result:result}returnresult}})()once(test)once(test)