var obj = { hi : 'hello' };
function myFunction( arg ) {
console.log( arg.hi );
}
myFunction( obj );
如果我致电myFunction
,javascript引擎是否会将obj
作为参考?或复制?
那么,我怎么能看到它?
答案 0 :(得分:1)
对象通过引用传递,而不是通过值传递。 因此,您必须小心更改函数内的对象。
你可以在我的代码段中看到。
var o = {
'msg': 'Say Hi!'
};
function myFun(arg) {
console.log(arg.msg);
// This should not be accessible
// from global scope if is a copy
arg.msg = 'Bye';
}
myFun(o);
// Check what appened
console.log(o.msg);
// It is passed by reference.
答案 1 :(得分:0)
如果它是一个对象 - 它将它作为参考传递(指向特定对象的地址)。它将成为同一个对象。函数中应用的任何更改都将影响对象。
要制作副本,您可以使用Object.assign