1. 程式人生 > >javascript中的方法過載的疑惑

javascript中的方法過載的疑惑

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>