關於javascript函數中參數傳遞問題

  相信每一位剛接觸javascript的同學在函數參數傳遞上都會很疑惑,原因無他,那就是它的語法太怪異了,你定義一個函數

例如function test(name,msg){

return 'hello' + name + msg;

}

那麼你在調用的時候怎麼調呢,你可以test('Eric'),test('Eric','welcome to javascript')甚至你可以給它傳遞任意多個參數,並且類型隨意.這是多麼爽的一件事情,學過c++/c#或者java的同學可能就會想到函數重載。但是,我要告訴你的是,javascript中不存在函數重載,如果你定義了兩個同名函數,那麼先定義的函數將被後定義的覆蓋,意思便是你想要的結果只能從後定義的函數中得到。

好了,言歸正傳,爲什麼javascript的函數傳遞可以這麼隨意呢,那我們就先來看看傳過來的參數都存到哪裏吧。實際上,在它的內部實現中,所有傳過來的參數都存在一個數組中。函數接收到的始終是這個數組,而不關心這個數組包含了哪些參數。現在就好理解了,我們定義了一個函數,調用的時候參數可以隨便傳,你傳多少它都給你加入數組中,如果不傳,那麼你的形參全部都是‘undefined’,這並不會有什麼語法錯誤,但是語義上就不好說了。

好了,,,,,,,,第一次寫博客,小弟不才,讓各位見笑了,希望這篇博文能對你有些許幫助。。。。

I LOVE YOU,GUYS!

發佈了31 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章