javascript - 为什么我的JavaScript参数没有“通过引用”传递?

原文 标签 javascript

我确定我在这里遗漏了一些明显的东西,但是我希望changeMe方法的参数“通过引用”传递-换句话说,对函数内部参数的更改将更改函数外部的变量。

以下是在jsfiddle中运行的,使用Chrome的F12开发人员工具显示了控制台输出。 http://jsfiddle.net/fzEpa/

var object1 = { Property1: 'Value1' };
changeMe(object1);
console.log(object1);

function changeMe(refToObject) {
    console.log(refToObject);
    refToObject = { Property1: 'Value2' };
    console.log(refToObject);
}

最佳答案

它通过引用传递,但是它是对对象的引用,而不是对object1变量的引用(也是对对象的引用)。

您正在用对新对象的引用覆盖对对象的引用。

这样就保留了对原始对象的原始引用。

要修改对象,您可以执行以下操作:

function changeMe(refToObject) {
    refToObject.Property1 = 'Value2';
}

关于javascript - 为什么我的JavaScript参数没有“通过引用”传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16060628/

相关文章:

javascript - 使用renderIntoDocument测试功能组件

javascript - 正则表达式:获取Kleene-star表达式中每个匹配项的匹配值?

javascript - 请求全屏

javascript - JS双重感叹号-是否有充分的理由使用它?

php - 谷歌地图标记加载最新记录

javascript - 没有访问控制允许带有Java Rest后端的原始 ionic 项目

javascript - 为什么我不能在JavaScript元素中附加一个externalHTML?

javascript - 使用Knockout.js 3.2.0的分阶段行为,移位未定义

javascript - 在React Server端渲染的应用程序中启用滚动

javascript - 使用canvas在javascript中绘制一个正方形