






















function addMethod(obj,name,fun){ const old=obj[name]; obj[name]=function(...args){ if(args.length===fun.length){ return fun.apply(this,args); }else if(typeof old==='function'){ return old.apply(this,args) } } } const obj={} addMethod(obj,'getuser',()=>console.log('getuser')) addMethod(obj,'getuser',(name)=>console.log('getuser name')) obj.getuser() obj.getuser('aaa') function methodOverLoad(){ const result={}; const overload=function(...args){ const argsTypes=args.map(item=>typeof item).join("-") result[argsTypes].apply(this,args); } overload.addImpl=function(...args){ const fun=args.pop(); if(typeof fun!=='function'){ return; } const args1=args.map(item=>typeof item).join("-"); result[args1]=fun; } return overload; } const overload=methodOverLoad() overload.addImpl('number',(num)=>{console.log('number '+num)}); overload.addImpl('string',(str)=>{console.log('number '+str)}); overload.addImpl('number','string',(num,str)=>{console.log('number '+num+'-----'+str)}); overload(23433); overload("aabbcc"); overload(5555,'9999')
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。