我的相片
劍俠鼻唄
如果一個人會不依著同伴的步伐前進,有可能是因為他聽到了另一種鼓聲。
檢視我的完整簡介

2006年6月23日 星期五

傳值呼叫VS.傳址呼叫測試(JavaScript)

傳值呼叫VS.傳址呼叫測試(JavaScript)



/*函數宣告
*********************/
function FuncA(num,bool){//測試數值和布林
num++;
bool=false;
document.write("在函數FuncA中的變數num值為:"+num+";變數bool值為"+bool+"<br/>");
}

function FuncB(str,man){//測試字串和物件
str="骷髏紳士";
man.name="劍俠鼻唄";
document.write("呼叫FuncB時:"+str+";"+man.name+"<br/>");
}

/*測試
*********************/

var num=1; //數值
var bool=true; //布林
var str="布魯克"; //字串

var man=new Object(); //物件
man.name="布魯克";

document.write("呼叫FuncA前,變數num的值為:"+num+"。變數bool的值為:"+bool+"<br/>");

FuncA(num,bool);
document.write("呼叫FuncA後,變數num的值為:"+num+"。變數bool的值為:"+bool+"<br/>");

document.write("呼叫FuncB前:"+str+"。"+man.name+"<br/>");
FuncB(str,man);
document.write("呼叫FuncB後:"+str+"。"+man.name+"<br/>");


/*測試結果
*********************************/





1.可以發現資料型態為,數值、布林、字串的變數,不論在函數中如何更動,事後調出來看,變數的值仍是不會變。(更動的是函數中同名的區域變數。)
2.在最後一列可以看到,物件屬性值為布魯克,在經函數變動後,往後它的值就會一直是劍俠鼻唄。除非有再更動過。