91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS中為什么沒有函數重載

發布時間:2021-08-25 18:53:05 來源:億速云 閱讀:119 作者:chen 欄目:編程語言

這篇文章主要介紹“JS中為什么沒有函數重載”,在日常操作中,相信很多人在JS中為什么沒有函數重載問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JS中為什么沒有函數重載”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

  函數重載是指在同一作用域內,可以有一組具有相同函數名,不同參數列表(參數個數、類型、順序)的函數,這組函數被稱為重載函數。重載函數通常用來聲明一組功能相似的函數,這樣做減少了函數名的數量,避免了名字空間的污染,對于程序的可讀性有很大的好處。

但是在JS如果不通過一些方法是無法實現重載的,可以從以下兩個角度去理解。

  方法簽名指的是函數的名稱加形參列表,并且通過函數的名稱或者形參列表都可以區分出是不同的函數。

  JS中通過形參是沒有辦法區分出不同的函數的,只能通過函數的名稱區分出不同的函數。

  上述實際上是一個函數,后面的函數add會覆蓋前面的函數,究其原因還是因為JS是弱類型的語言,a和b實際上都是用var聲明的,等價于

  所以在JS中只能通過函數名稱來辨別是不是同一個函數,形參是沒有用的。

  但是在強類型的語言中就是可以的,例如在c語言中,定義函數時形參必須要指定類型,向里面傳值的時候也必須傳遞指定類型的值。函數名相同,形參名不同的函數也會被認為是不同的函數。

  所以,在C語言這種強類型的語言中是可以實現函數重載的,JS這種弱類型的語言是不可以的。

函數指針

  另一中理解的角度是可以將函數名想象為指針,函數名中存放的是函數體存放的地址。

  最終add實際上指向的是第二個函數,第一個函數被覆蓋了,所以最終調用add時調用的也是第二個函數,并不能實現函數的重載。

到此,關于“JS中為什么沒有函數重載”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

js
AI

台南县| 清苑县| 元朗区| 昭平县| 任丘市| 河西区| 大悟县| 方城县| 柳河县| 彭山县| 郓城县| 鲜城| 福安市| 丹凤县| 永新县| 林周县| 衡东县| 石渠县| 库尔勒市| 南召县| 宜宾县| 达孜县| 姚安县| 正安县| 芒康县| 上林县| 招远市| 百色市| 杭州市| 南通市| 资讯| 清新县| 郎溪县| 仙游县| 城步| 全州县| 泗阳县| 务川| 中方县| 舒兰市| 鹤庆县|