javascript中的方法過載的疑惑
阿新 • • 發佈:2018-12-11
javascript中的方法過載的疑惑
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>javascript中的方法過載的疑惑?</title> <link rel="stylesheet" type="text/css" href="body.css"> <link rel="stylesheet" type="text/css" href="input2.css"> <link rel="stylesheet" type="text/css" href="mark.css"> <script type="text/javascript"> /* 經過測試發現,javascript中的方法過載,和方法的順序位置有關,過載的方法以最後一個位置的方法為準,也就是說過載的方法,最 後面的方法會把前面的方法覆蓋掉 js中沒有過載的概念,所以你的同名方法永遠都是最後一個方法覆蓋掉前面的方法,就如下程式碼一樣: var a = 1; var a = 2; var a = 3; alert("a=" + a); */ function hello() { alert("我是無引數的hello()函式!"); } function hello(userName) { alert("我是帶1個引數的hello(userName)函式!" + " - " + userName); } function hello(userName, age) { alert("我是帶2個引數的hello(userName, age)函式!" + " - " + userName + " - " + age); } //js沒有過載,因此需要做判斷。 function hello(userName,age){ if(arguments.length==2){ alert("我是帶2個引數的hello(userName, age)函式!" + " - " + userName + " - " + age); }else if(arguments.length==1){ alert("我是帶1個引數的hello(userName)函式!" + " - " + userName); }else if(arguments.length==0){ alert("我是無引數的hello()函式!"); } } var age = 16; var age = 22; var age = 9; alert("age=" + age); function test(){ //區域性變數和全域性變數同名 var age = 25; alert("age=" + age); } //呼叫test()函式 test(); </script> </head> <body> <div align="center" style="height: auto;"> <h2>javascript中的方法過載的疑惑?</h2> <h3>js中沒有過載的概念,所以你的同名方法永遠都是最後一個方法覆蓋掉前面的方法</h3> <h2>有時間的話可以拓展一下知識,如下</h2> <a href="http://blog.csdn.net/fogcrane/article/details/54094941" target="_blank"> JavaScript的函式支援過載嗎? </a><br><br> <a href="https://www.cnblogs.com/yugege/p/5539020.html" target="_blank"> 淺談JavaScript函式過載 </a><br><br> <a href="http://www.jb51.net/article/62310.htm" target="_blank"> JavaScript中的方法過載例項 </a><br><br> <input type="button" value="js方法過載(1個引數)" onclick="hello('令狐沖')"> <input type="button" value="js方法過載(2個引數)" onclick="hello('韋小寶', 16)"> <input type="button" value="js方法過載(無引數)" onclick="hello()"> <br><br> </div> </body> </html>