在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,傳一個的時候默認第二個值與第一個相等...因此,難搞,具體狀況還需具體對待,呀啦~