javascript基础:函数传参方式

先分析以下逻辑输入什么:

let a = {name:'a',age:12
}
function change(o){o.age = 18o = {name:'b',age:49}return o
}
let b = change(a)
console.log(a.age)//18
console.log(b.age)//49

涉及内容:

1.按值传递(call by value),按引用传递(call by reference),按共享传递(call by sharing)

(1)按值传递(call by value)是最常用的求值策略:函数的形参是被调用时所传实参的副本。修改形参的值并不会影响实参。

(2)按引用传递(call by reference),函数的形参接收实参的隐式引用,而不再是副本。这意味着函数形参的值如果被修改,实参也会被修改。同时两者指向相同的值。

(3)对象类型按共享传递的(call by sharing,也叫按对象传递、按对象共享传递),是JS中的对象类型传递方式(该求值策略被用于Python、Java、Ruby)。

​ 该策略的重点是:调用函数传参时,函数接受对象实参引用的副本(既不是按值传递的对象副本,也不是按引用传递的隐式引用)。

它和按引用传递的不同在于:在共享传递中对函数形参的赋值,不会影响实参的值。

2.深克隆和浅克隆

总结: 值传递不会被修改;对象传递,本身不会被修改,但属性值可以被修改且只能通过属性修改。

javascript函数传参方式相关推荐

  1. 指针数组的初始化和遍历,并且通过for循环方式、函数传参方式进行指针数组的遍历...

    1 /************************************************************************* 2 > File Name: messa ...

  2. 006 - JavaScript函数传参和一些内置函数

    对Java有一定使用了解之后,从Java角度看Javascript,其实会有很多类似的地方.身为一门编程语言,前边说了面向对象的Js , 继续说,本章了解一下 Js这门语言是如何处理函数这一块 Js中 ...

  3. Python函数传参方式超级大汇总

    位置参数 位置参数传递是最为简单的传递方式,按照函数参数的位置顺序逐个匹配传入,传入参数的个数必须与函数参数个数一致. 见示例1,根据位置顺序进行匹配,a,b,c分别赋值为2,3,4 示例1 def ...

  4. 【python教程入门学习】Python函数定义及传参方式详解(4种)

    这篇文章主要介绍了Python函数定义及传参方式详解(4种),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 一.函数初识 1.定 ...

  5. axios链接带参数_axios常见传参方式

    1:get请求 一般发送请求是这么写 axios.get('/user?id=12345&name=user') .then(function (res) { console.log(res) ...

  6. JS一起学02:函数传参、操作属性第二种方式、提取行间事件、循环、this、焦点问题、联动选择、选项卡焦点图

    一.函数传参     1.函数传参:参数就是占位符----函数里定不下来的东西 var a1=function(){ alert(123); }; function a(f){ // 相当于 f=a1 ...

  7. export function函数传参_从底层看前端(七)—— JavaScript到底有多少种函数?

    在上篇文章中我们了解到了执行上下文是什么,也知道了任何语句的执行都会依赖特定的上下文. 一旦上下文被切换,整个语句的效果可能都会发生变化.那么,切换上下文的时机就显得非常重要. 在JavaScript ...

  8. Javascript 之《函数传参到底是值传递还是引用传递》

    前言 这个问题其实困惑了我好久,但是在实际使用中总是得过且过,不想去深究.由于这种态度,在学习 Javascript 过程中,水平一直都是出于半桶水状态,很多概念和原理似懂非懂,模糊不清. 所以,写了 ...

  9. 2021-01-14python函数传参是传值还是传引用? 参数若是简单类型是传值 若是对象类型则是传引用,python是兼容两者传参方式的

    python函数传参是传值还是传引用? 首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题. ...

  10. 函数传参的三种方式(详细)

    最近又碰到了函数传参的问题,每次碰到都会让作者疑惑一段时间,这次干脆总结整理一下,顺便让自己更加透彻的了解传参的问题.咱们开始吧. c语言中,函数调用时传送给形参表的实参必须与形参有三个一致:类型.个 ...

最新文章

  1. Spring Cloud第八篇:Spring Cloud Bus刷新配置
  2. Visual Studio 2013 Web开发新特性
  3. 如何做流数据分析,Byron Ellis来告诉你...
  4. leetcode 131. Palindrome Partitioning | 131. 分割回文串(递归解法)
  5. 不需要安全实验证也可以开微信号_热门行业:电子专用设备工程师证考试报名时间及报名须知...
  6. text/x-jquery-tmpl做分页查询
  7. MCPTAM标定部分 运行结果
  8. FTP局域网内文件共享
  9. GEOTIF转nc文件
  10. js laypage mysql_layUI独立组件layer-laydate-laypage项目实践用法
  11. python打印购物清单_实例9:用Python自动生成Excel档每日出货清单
  12. 学信网-账号被注销解决方法
  13. 网易游戏AI Lab 招聘CV日常实习生
  14. 传统情感分类方法与深度学习的情感分类方法对比
  15. 一文读懂C++虚函数的内存模型
  16. Taro小程序组件传值
  17. python控制已经打开的浏览器_使用python+selenium控制手工已打开的浏览器
  18. 解决Zabbix用snmp监控网络流量不准的问题
  19. 《神经科学:探索脑》学习笔记(第23章 记忆系统)
  20. cenntos系统配置dns地址_localhost

热门文章

  1. fastjson:map转json字符串、json字符串转map、map根据key名拿value、JSONArray转list
  2. C语言学生成绩管理系统
  3. vscode插件开发总结
  4. c语言谭浩强简介,大一C语言谭浩强总结(到数组)简介.ppt
  5. 一些非常简单的Python代码
  6. Mp3原理及文件格式解析
  7. c语言60进制字母,傻瓜学习C语言进制转换
  8. 计算器c语言源代码全,C语言的计算器源代码
  9. IDEA 创建类注释模板
  10. 包邮!送55本《大数据浪潮之巅:新技术商业制胜之道》