基本类型与引用类型的值

2016-10-28  本文已影响0人  闪电西兰花
1.基本类型
var num1 = 9;
var num2 = num1;
console.log(num1);             //9
console.log(num2);             //9
num2++;
console.log(num1);             //9
console.log(num2);             //10;只有num2自己改变了
2.引用类型
var obj1 = new Object();
var obj2 = obj1;
obj1.name = "Asher";
console.log(obj2.name);           //Asher;obj1和obj2指向同一个对象
3.两种类型值如何传递参数
function addTen(num){
    num += 10;
    console.log(num);           //30;经过函数计算的cont
}
var cont = 20;
addTen(cont);
console.log(cont);            //20;函数外部变量cont依然是20,按值传递,不受影响
function setName(obj){
    obj.name = "Asher";
}
var boy = new Object();
setName(boy);
console.log(boy.name);       //Asher
//在这个函数内部,obj和boy引用的是同一个对象
//即使这个变量是按值传递的,但是obj还是会按引用来访问同一个对象
function setName(obj){
    obj.name = "Asher";
    obj = new Object();          //重新声明obj之后,相当于变成局部对象了,函数执行完之后会被销毁
    obj.name = "Taylor";
    console.log(obj.name);       //Taylor
}
var boy = new Object();
setName(boy);
console.log(boy.name);         //Asher;boy.name的值依然没变(没变成Taylor)
//即使在函数内部修改了参数值,原始引用仍然不变
上一篇 下一篇

猜你喜欢

热点阅读