javascript---arguments對象的使用

1、任何函數內部都包含了arguments對象,其表現與數組類似,可以使用下標訪問arguments的數據成員。

arguments主要用於保存調用函數的實際參數數據。

function test() {
    alert(arguments[0]); //1
    alert(arguments[1]); //2
}
test(1, 2, 3)

2、函數的形參(命名參數)列表也是保存傳給函數的實參數據,arguments與形參數據是同步的。
arguments對象與形參並不是指向同一個內存空間,而是不同的內存空間而存儲的數據是同步的。
修改arguments[n],相等於修改了第n個形參的值(假設從0開始),反過來同理。

function test(a, b, c) {
    arguments[1] = 1;
    alert(b); // 1
    alert(arguments[1]==b);// true


    b = 3;
    alert(arguments[1]); // 3
    alert(arguments[1]==b); //true
}
test(1, 2, 3)
3、如果傳遞給函數的實參少於形參,則arguments與未初始化的形參數據不會進行關聯同步。

function test(a, b, c) {
    arguments[2] = 1;
    alert(c); // undefined
    alert(c == arguments[2]); // false


    c = 3;
    alert(c);//3
    alert(arguments[2]); // 1
}
test(1, 2);

4、arguments對象的屬性
      length:傳遞給函數的實際參數個數
      callee:指向當前arguments所在的相應函數

function test(){
    alert(arguments.callee == test); //true
}
test();
5、簡單的一個demo如下:

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>arguments</title>
	<script type="text/javascript">
		function test () {
			for (var i = 0; i < arguments.length; i++) {
				document.writeln("函數的參數個數是:"+arguments.length+";運行結果是:"+(arguments[i]+10)+".")
			};
		}
		test(10);//1;20
		test(10,20);//2:20和2:30
	</script>
</head>
<body>
</body>
</html>






發佈了39 篇原創文章 · 獲贊 15 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章