變數的值被複製出一份,與原來的值將不相干,也就是說即使新的值被修改,原來的值也不會改變,在JavaScript中基本型別都是傳值的.
2.傳引用(by reference).
複製程式碼
程式碼如下:
function testPassValue()
{
var date = new Date(2006,02,27); alert(date.getDate()); //輸出為27
//將date引用本身複製一份,傳遞到passReference,注意date所指向的物件並沒有被複製
passReference(date);
alert(date.getDate()); //輸出為12
//同上
changeReference(date);
alert(date.getDate()); 🎜>}
function passReference(da)
{
//由於da和原引用指向的是同一個物件,在function外,透過原有的引用存取到的將是物件的日期屬性值,將是修改後的值.
da.setDate(12);
}
function changeReference(da){
//da引用實際上是原引用的一份copy,將引用本身重新賦值,將不會影響原引用
da= new Date(2007,05,11);
//將da引用指向一個新的物件,此時原引用指向的還是原來的物件
if (s1 == s2) alert("s1 = s2"); //這句會不會執行? java用的熟的人可能會認為不會執行(這句話我頗有微詞,java中也是會執行的! java一樣是同一性.