Javascript – 原始vs引用类型

前端之家收集整理的这篇文章主要介绍了Javascript – 原始vs引用类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Why isn’t this object being passed by reference when assigning something else to it?4个
在下面的代码中,我们传递一个对象.所以,根据javascript我们传递了一个引用和操作.
var a = new Number(10);
x(a);
alert(a);

function x(n) {
n = n + 2;
}

但提醒10而不是12.为什么?

解决方法

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
}

猜你在找的JavaScript相关文章