回头过来复习一下。
从一个变量向另一个变量复制的时候,复制过去以后,都是单独独立的变量,当你改变其中一个的时候,并不会影响另一个变量。他们只是value相同而已;
var a = 1;
var b= a;
b += 1;
console.log(a); // 1
console.log(b); //2
// 对象赋值,改变的只有指针。其中的值并没有改变 他们不是相对独立的
var a = new Object();
a.name = 1;
var b = a;
b.name = 5;
console.log(b); //5
console.log(a); // 5
// .函数传递值类型:
// 声明变量num并复制为10,这个是num是一个值类型,当为函数传递参数的时候,是将此值复制一份传递给函数,所以在函数执行之后,num本身的值并没有被改变,函数中被改变的值仅仅是一个副本而已。
var a = function(num){
num +=10;
return num;
}
var num = 10;
var b = a(num);
console.log(num); //10
console.log(b); //20
// 函数传对象
//这个地方的和对象传值一样 传递的是指针 所以当a当做参数传入b的时候,在b里发生了改变,所以,a的name也发生改变
var a = {
name:"tom"
}
function b(c){
c.name = "cyd";
return c;
}
var d = b(a);
console.log(d.name); //cyd
console.log(a.name); //cyd
//这时候的的传值 我理解的是:在不同作用域下的俩个对象 是相互独立的,不干扰的;所以传过来的值没有变化
var a = {
name:"tom"
};
function b(c){
c={
name:"cyd"
}
return c;
}
var d = b(a);
console.log(d.name); //cyd
console.log(a.name); // tom
还有很多不足的地方,希望给予指正。