sar*_*rma 7 javascript pass-by-reference
在下面的代码中,我们传递一个对象.所以,根据javascript我们传递了一个引用和操作.
var a = new Number(10);
x(a);
alert(a);
function x(n) {
n = n + 2;
}
Run Code Online (Sandbox Code Playgroud)
但是提醒10而不是12.为什么?
g.k*_*esz 10
n是本地的x,首先它被设置为与全局相同的参考a.然后将右侧n + 2评估为数字(原始).
赋值的左侧,n被永远不会计算,它只是一个标识符那里.所以我们的局部变量现在设置为右侧的原始值.引用的值a永远不会被实际修改.看到
var a = new Number(10);
x(a);
alert(a); // 10
function x(n) {
alert(typeof n); // object
n = n + 2;
alert(typeof n); // number
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
833 次 |
| 最近记录: |