为什么这个数组是通过引用而不是按值传递的,我该如何改变它
Why is this array being passed by reference and not by value, and how can I change this?
我正在处理我编写的一些代码中的一个错误,罪魁祸首原来是这个片段(为了这个问题而简化):
var a = [1, 2, 3, 5, 4];
// later...
function f(arr) {
var sorted = arr.sort();
// other stuff
}
// later...
console.log(a);
// logs [1, 2, 3, 4, 5]!
我的问题是,为什么a
函数完成后保持排序?当然,在JS中,所有变量都是按值而不是引用传递的吗?
查看此内容以获取完整描述
JavaScript 是按引用传递还是按值传递语言?
数组是一个对象。在javascript中,所有对象都是通过引用传递的。
相关文章:
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- jQuery:当屏幕大小改变时,如何更改默认图像和悬停图像
- 为什么使用immutableJS我的状态没有改变
- JavaScript改变了双方的显示风格
- 改变所有<td>为特定的桌子点击颜色
- 变量dos'即使我可以返回更新后的值,也不会改变
- jQuery更改变量值
- 爆米花改变来源
- innerHTML赢得't改变元素
- Javascript onclick更改变量值
- "改变“;列表头,然后继续处理列表
- 是否可以使用“;document.all”;在IE11中,而不改变每次使用
- 当偏移量改变时滚动顶部
- 如何用jquery动画改变背景颜色,就像一个过渡
- 用咕哝的任务改变恒定的角度内容
- 如何改变“;尺寸“;单击选择时的选择
- 在按钮改变高度后使标题保持不变
- 如何改变<仪表>价值观
- .show()不会改变效果或方向
- 角度路由:只是为了改变一些变量