在js中函数没有重载的概念,若是声明了多个重名的函数,无论函数的形参个数是否同样, 只有最后一个有效,其余的函数声明都是无效的。jquery
定义一个函数fn(v1, v2),调用fn()时写成fn(s1):函数
**处理:**s1会赋值给v1。当第二个参数v2在函数中没有用到就不会被赋值,若是用到会被当undefined处理。query
**结果:**v2为undefined时,可能会报错。参数
定义一个函数fn(v1, v2),调用fn()时写成fn(s1, s2, s3):undefined
**处理:**s1被赋值给v1,s2被赋值给v2,s3会被忽略。
**结果:**不会报错。
以上是通常JS的处理方式,固然也有特殊,好比jquery中的clone()函数,其默认参数有两个,不传值的时候两个参数默认false,传一个的时候默认第二个值与第一个相等...因此,难搞,具体状况还需具体对待,呀啦~