Seb*_*iva 3 javascript pass-by-reference
有人可以在下面的代码中解释我,为什么当我做o = {}时,对象没有被重置?
var funky = function (o) {
o.z = null;
o.a = "aaa";
o = {};
};
var x = { z: "zzz"};
funky(x);
console.log(x);
Run Code Online (Sandbox Code Playgroud)
因为JavaScript没有通过引用传递.它按值传递引用.
差异很微妙,但很重要.它的要点是,对象变量的值不是对象; 它是对象的引用.传递变量会传递该引用的副本.有了它,您可以随意修改对象的内容,但不能以调用者可以看到的方式将其替换为整个其他对象.
归档时间: |
|
查看次数: |
195 次 |
最近记录: |