栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Javascript中通过引用传递变量

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Javascript中通过引用传递变量

Javascript中没有可用的“通过引用传递”。您可以传递一个对象(也就是说,您可以按值传递对一个对象的引用),然后让一个函数修改该对象的内容:

function alterObject(obj) {  obj.foo = "goodbye";}var myObj = { foo: "hello world" };alterObject(myObj);alert(myObj.foo); // "goodbye" instead of "hello world"

您可以使用数字索引遍历数组的属性,并根据需要修改数组的每个单元格。

var arr = [1, 2, 3];for (var i = 0; i < arr.length; i++) {     arr[i] = arr[i] + 1; }

重要的是要注意“通过引用传递”是一个非常具体的术语。这并不意味着可以将引用传递给可修改的对象。相反,这意味着可以以允许函数在调用上下文中修改该值的方式传递简单变量。所以:

 function swap(a, b) {   var tmp = a;   a = b;   b = tmp; //assign tmp to b } var x = 1, y = 2; swap(x, y); alert("x is " + x + ", y is " + y); // "x is 1, y is 2"

在像C ++这样的语言中,这样做是可行的,因为该语言 确实 具有(通过)引用传递。

编辑
尽管在本例中是关于Java的。在阅读Reddit评论中的来回内容时,我突然想到,很大一部分困惑是由涉及“参考”一词的不幸碰撞引起的。术语“按引用传递”和“按值传递”早于在编程语言中使用“对象”的概念。它实际上根本不是关于对象;它与函数参数有关,尤其是关于函数参数如何“连接”(或不连接)到调用环境。特别是,看起来几乎与Javascript完全一样。 但是,也可以在调用环境中修改对象引用,这是您无法在Javascript中完成的关键操作。引用传递语言不会传递引用本身,而是传递对reference的引用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400530.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号