• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

javascript函数传参方式

武飞扬头像
T@Nn€
帮助1

javascript基础:函数传参方式

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

let a = {
      name:'a',
      age:12
}
function change(o){
      o.age = 18
      o = {
        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.深克隆和浅克隆

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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhghfkij
系列文章
更多 icon
同类精品
更多 icon
继续加载