JavaScript实现方法重载JS本身不支持方法重载,如果定义了两个同名方法,总是执行最后定义的一个。但是没有原生支持并不代表不能实现。毕竟JS是一门灵活动态的语言。可以通过以下思路实现:利用闭包特性判断参数列表的长度1.判断参数列表的长度示例代码:functionoverload(){if(arguments.length===1){//TODO}elseif(arguments.length===2){//TODO}}2.使用闭包特性JQuery之父JohnResig所著的《Secrets of the JavaScript Ninja》一书(中文译名:JavaScript忍者秘籍)提供了使用闭包特性的方法。示例代码:/***处理函数重载的函数*@paramobject需要重载的函数所在的对象*@paramname需要重载的函数名*@paramfn重载的实现function,参数列表中的最后一个参数当为默认参数时,总是执行参数列表长度为实际参数列表长度+1*的函数/functionoverloadMethod(object,name,fn){constold=object[name];object[name]=function(){if(fn.length===arguments.length){returnfn.应用(这个,参数);}elseif(typeofold==='function'){返回旧的。应用(这个,参数);}};}欢迎转载,转载请注明出处:https://blog.kaguramea.me/archives/js-method-overload
