javascript函數中參數傳遞問題樣本探討_javascript技巧

來源:互聯網
上載者:User

相信每一位剛接觸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!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.