相信每一位剛接觸javascript的同學在函數參數傳遞上都會很疑惑,原因無他,那就是它的語法太怪異了,你定義一個函數
例如
function test(name,msg){return 'hello' + name + msg;}
那么你在調用的時候怎么調呢,你可以test('Eric'),test('Eric','welcome to javascript')甚至你可以給它傳遞任意多個參數,并且類型隨意.這是多么爽的一件事情,學過c++/c#或者java的同學可能就會想到函數重載。但是,我要告訴你的是,javascript中不存在函數重載,如果你定義了兩個同名函數,那么先定義的函數將被后定義的覆蓋,意思便是你想要的結果只能從后定義的函數中得到。
好了,言歸正傳,為什么javascript的函數傳遞可以這么隨意呢,那我們就先來看看傳過來的參數都存到哪里吧。實際上,在它的內部實現中,所有傳過來的參數都存在一個數組中。函數接收到的始終是這個數組,而不關心這個數組包含了哪些參數?,F在就好理解了,我們定義了一個函數,調用的時候參數可以隨便傳,你傳多少它都給你加入數組中,如果不傳,那么你的形參全部都是‘undefined',這并不會有什么語法錯誤,但是語義上就不好說了。
好了,,,,,,,,第一次寫博客,小弟不才,讓各位見笑了,希望這篇博文能對你有些許幫助。。。。
I LOVE YOU,GUYS!
新聞熱點
疑難解答