传值和传址
首先看下面的代码:
Code
上面得到的结果是什么呢?输出:c,b,a,为什么不是a,b,c呢?
第一句定义了一个myArray的数组,第二句把myArray的数组取反,并把地址传给myArray2,注意,这里是传递的是地址,不是传值,考虑一下这些问题:
1.这样传址后,myArray还存在吗?
2.改变myArray2是否就会改变myArray?
3.myArray是否与myArray2全等(值相等,是同一类型)?
<script type="text/javaScript">
var myArray:Array=new Array("a","b","c")
var myArray2=myArray.reverse();
myArray2.push("d");
for (var i in myArray2){
document.write(myArray[i]);
}//结果d,c,b,a
document.wirte(myArray===myArray2);//true
</script>
var myArray:Array=new Array("a","b","c")
var myArray2=myArray.reverse();
myArray2.push("d");
for (var i in myArray2){
document.write(myArray[i]);
}//结果d,c,b,a
document.wirte(myArray===myArray2);//true
</script>
上面的答案都是肯定的.关于传址,传址就像以前在网上看到的一样,如同网友所说,好比一快捷键,设置两个快捷键启动同一程序,得到的结果是一样的.上面的代码我是在flash中的as3中常演示通过的.