首頁 web前端 js教程 js 覆盖和重载 函数_javascript技巧

js 覆盖和重载 函数_javascript技巧

May 16, 2016 pm 06:45 PM
覆蓋 重載

学过JAVA的人对函数的覆盖和重载肯定是再熟悉不过了。
重载指两个或多个函数的参数类型,顺序和数量以及返回值不一样。
覆盖指两个或多个函数的参数类型,顺序和数量以及返回值完全一样。
那javascript真的有这种特性么?
回答是JS中函数重名只会采用最后一个定义。
首先来看下下面的代码

复制代码 代码如下:




New Document








    
    



2th test


    
    



3th test


    





首先按名为 function with no arguments 的按钮

页面的结果为 this is a function named 'testFun' with one argument,the argument is undefined
然后按名为 function with one argument test 的按钮
页面的结果为 this is a function named 'testFun' with one argument,the argument is test
然后按名为 function with no arguments 的按钮
页面的结果为 this is a function named 'testFun2' with no arguments.
然后按名为 function with one argument test 的按钮
页面的结果为 this is a function named 'testFun2' with no arguments.

从以上的测试中我们发现我们只是点换了两个函数的定义顺序,结果大不相同。
从上面的测试中我们可以得出结论: 重载的话,只要函数定义在下面就会覆盖上面的函数定义。
好了,接下来看覆盖。
按名为 test function share the same name and arguments. 的按钮

页面的结果为 this is a function named 'testFun3' second.
测试结果很明显,结论也是和上面相同的。
最终,我们得出结论:
方法重名,JS会以最后定义的函数作为函数体。当然这不包括JS中的继承中的覆盖。
欢迎拍砖
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

CentOS覆蓋安裝及CentOS7覆蓋安裝 CentOS覆蓋安裝及CentOS7覆蓋安裝 Feb 29, 2024 pm 10:00 PM

CentOS覆蓋安裝及CentOS7覆蓋安裝

如何重載 golang 函數? 如何重載 golang 函數? Apr 28, 2024 am 09:27 AM

如何重載 golang 函數?

golang函式重載與多型態的差別? golang函式重載與多型態的差別? Apr 30, 2024 am 09:30 AM

golang函式重載與多型態的差別?

PHP函數是否支援函數重載和函數覆蓋? PHP函數是否支援函數重載和函數覆蓋? Apr 19, 2024 am 10:06 AM

PHP函數是否支援函數重載和函數覆蓋?

Go 語言中的多型和重載怎麼實現? Go 語言中的多型和重載怎麼實現? Jun 10, 2023 am 10:25 AM

Go 語言中的多型和重載怎麼實現?

nosql與mysql的差別有哪些 nosql與mysql的差別有哪些 Jan 28, 2023 pm 04:51 PM

nosql與mysql的差別有哪些

Java錯誤:方法覆蓋錯誤,如何解決 Java錯誤:方法覆蓋錯誤,如何解決 Jun 24, 2023 pm 11:09 PM

Java錯誤:方法覆蓋錯誤,如何解決

為什麼子類別呼叫重載方法時會引發異常? 為什麼子類別呼叫重載方法時會引發異常? Mar 08, 2024 pm 04:48 PM

為什麼子類別呼叫重載方法時會引發異常?

See all articles