var obj={hello:1, world:2}; var fn = function(o){ var ref =o; console.log(ref); ref.good =“good”; }
fn(obj); fn(obj);
chrome 控制台输出为 :
Object {hello: 1, world: 2} Object {hello: 1, world: 2, good: “good”}
为什么两次输出不一样呢?
var obj={hello:1, world:2}; var fn = function(o){ var ref =o; console.log(ref); ref.good =“good”; }
fn(obj);//只调用一次
chrome 控制台输出为 :
Object {hello: 1, world: 2, good: “good”}
var obj={hello:1, world:2}; var fn = function(o){ var ref =o; console.log(ref); ref.good =“good”; }
fn(obj); ; //也是调用一次,再加个空语句
chrome 控制台输出为 :
Object {hello: 1, world: 2}
在JavaScript中,对象是引用传值的。两次调用,但对象是同一个。
你的第二次实验结果值输出Object {hello: 1, world: 2}
,我测试的结果是这样。
引用传递