传值与传地址

74 阅读1分钟

例子1

  • 改副本的地址完全不会影响对象主体
var obj={name:'ryan'};
function fn(x){
	console.log(x===obj);
	x=null; // 改副本的地址
}
fn(obj); // obj本身就是一串地址,于是把地址传过去
console.log(obj); // {name:'ryan'}
  • 顺着副本的地址去修改主体内部当然会影响对象主体
var obj={name:'ryan'};
function fn(x){
	console.log(x===obj);
	x.name='123'; // 改的是主体内部
}
fn(obj); 
console.log(obj); // {name:'123'}