希望有人能为我解决这个问题。
假设我有2个全局变量: var myarray = [1,3,5,7,9],hold;
然后我这样做:
function setup()
{
alert (myarray[0]);//shows 1
hold=myarray;
alert (hold);//appears to show 'hold' containing all the values of myarray. first number shown is 1
myarray[0]=2;
alert (hold);//shows the values of myarray with the updated first entry. first numbe shown is 2
}
我是否认为'hold'只是保留对myarray的引用,而不是实际取得所有的值?
答案 0 :(得分:4)
我是否认为'hold'只是保留对myarray的引用,而不是实际取得所有的值?
不完全,hold
和myarray
都是对同一个数组的引用。
JS中的所有内容或多或少都是一个引用(即使var foo = "bar"
创建了对不可变字符串的引用)。