在向函数传递引用类型的参数时,相当于把引用类型的地址复制给函数内的一个局部变量,所以局部变量和传入的参数会指向内存中的同一个对象。  局部变量的变化也会映射到传入参数

function setAge(obj){obj.age = 20;
}
var person = new Object();
setAge(person);
console.log(person.age); // 20

解释: 我们创建了person对象,但是我们创建的person并没有age属性,然后我们通过setAge方法给函数内的局部变量obj添加了age属性,但是函数内局部变量obj的变化会映射到传入参数,这说明两者在都指向内存中的同一个地址。

然而引用类型作为参数传递并不说明引用类型传参是按引用传参的

function setAge(person){obj.age = 20;obj = {age: 30};
}
var person = new Object();
setAge(person);
console.log(person.age); // 20

解释:我们在函数内让person重新指向一个新的对象,等于切断了函数内局部变量obj与传入参数person的联系,即局部变量指向一个新的地址。

如果是按引用类型传递的话,那么全局变量person就会与局部变量obj指向同一个地址,那么person.age也应为30,由于不是按引用传递的,所以全局变量person还是指向原来的地址

参考自: JavaScript高级程序设计第3版

转载于:https://www.cnblogs.com/jhaosun/p/params.html

引用类型作为函数参数何解相关推荐

  1. PHP date函数参数详解

    PHP date函数参数详解 作者: 字体:[增加 减小] 类型:转载 time()在PHP中是得到一个数字,这个数字表示从1970-01-01到现在共走了多少秒,很奇怪吧  不过这样方便计算, 要找 ...

  2. java调用js匿名函数参数,js匿名函数作为函数参数详解

    由衷的感叹,js真是烦. 学到现在,渐渐理解了什么是:语言都是通用的,没有好不好,只有擅长不擅长. 继承,多态,甚至指针,c能实现,c++,java有,javascript(和java是雷锋和雷峰塔的 ...

  3. matlab melbankm,Matlab v_melbankm函数参数详解(英文附例)

    Matlab v_melbankm函数参数详解(英文附例) 笔者使用的是R2019的matlab,下载了voicebox安装至matlab路径下即可使用.下载voicebox请参看此博客 需要注意的是 ...

  4. ioctl 函数 参数 详解

    2019独角兽企业重金招聘Python工程师标准>>> ioctl 函数 参数 详解 2009-04-24 11:55 ioctl函数 本函数影响由fd参数引用的一个打开的文件. # ...

  5. 定义一个没有参数的函数、输出python3次_Python函数参数详解,三天让你掌握python,不再是小白

    原标题:Python函数参数详解,三天让你掌握python,不再是小白 引言 随着程序功能的增多,代码量随之增大,此时仍不加区分地把所有功能的实现代码放到一起,将会使得程序的组织结构不清晰,可读性变差 ...

  6. ES6函数参数的解构赋值,以及2种设置参数默认值方法的区别

    文章目录 1. 函数参数的解构赋值方式 2. 函数参数解构设置参数默认值 1. 方法1 2. 方法2 3. 总结 1. 函数参数的解构赋值方式 下面代码中,函数add的参数表面上是一个数组,但在传入参 ...

  7. Matlab mfcc函数参数详解(英文附例)

    Matlab mfcc函数参数详解 其实可以直接打开源代码看哈. %MFCC Extract the mfcc, log-energy, delta, and delta-delta of audio ...

  8. python传入参数加星号_Python 带星号(* 或 **)的函数参数详解

    1. 带默认值的参数 在了解带星号(*)的参数之前,先看下带有默认值的参数,函数定义如下: >> def defaultValueArgs(common, defaultStr = &qu ...

  9. Matlab v_melcepst函数参数详解(英文附例)

    Matlab v_melcepst函数参数详解(英文附例) 笔者使用的是R2019的matlab,下载了voicebox安装至matlab路径下即可使用.下载voicebox请参看此博客 需要注意的是 ...

最新文章

  1. STM32低功耗模式下GPIO如何配置最节能?
  2. 第三周项目二-本月有几天?
  3. WiFi Deauthenticated Reason Codes
  4. 1.5 Map集合:HashMap 和TreeMap 类
  5. 最大似然估计 高斯分布
  6. 2020-08-22 cuowu
  7. hdfs数据节点分发什么协议_HDFS主要节点解说(一)节点功能
  8. Manacher入门
  9. stat函数(stat、fstat、lstat)
  10. roboware使用过程中出出现找不到功能包的解决办法
  11. js获取服务器响应头信息,请问,js中请求头信息和返回头信息的方法
  12. 汽车上的一些名词缩写解释
  13. python2和3通用的头文件写法 不确定是否叫头文件 这种说法 大概就是这个意思
  14. 数组累加兼eval性能测试
  15. python3自动化软件发布系统_PythonPC客户端自动化实现原理(pywinauto)
  16. C语言:查找打印质数(素数)
  17. iOS pch文件配置
  18. 使用Photoshop画一个圆锥体
  19. 【同步与补偿】频率偏移
  20. 生信漫谈如何做出美美的多序列比对图

热门文章

  1. android 界面切换监听,Android切换页面--setContentView
  2. python3 解析文件类型filetype
  3. 卡萨帝5大高端解决方案亮相杭州展示“墅式人生”
  4. python可以数独游戏吗_学习python编程如何一键做出数独游戏答案 | k12教育网
  5. Qt+OpenCV读取摄像头视频、本地视频、网络视频流Demo
  6. Netty,Nginx严重落后;网络IO框架最新性能排名
  7. python --获取图片宽高
  8. [IDEA] 使用快捷键查找错误和警告
  9. FFmpeg Windows下安装与测试
  10. 人脸匹配(face matching)