美文网首页
js 传递参数

js 传递参数

作者: Ace__丨 | 来源:发表于2019-06-19 17:08 被阅读0次

所有函数的参数都是按值传递的

【复制变量值】复制基本类型变量的值,会在该变量对象上创建一个新值,然后把该值复制到新变量分配的位置上。任一变量值操作互不影响。

【复制引用指针】复制引用类型变量的值,同样会将存储在变量对象中的值复制一份放到新变量分配的空间中,不同的是这个值的副本实际上一个指针,而这个指针指向存储在堆中的一个对象。复制后,两个变量实际上将引用同一个对象。因此,改变任意变量,都会影响另一个变量。

有个误区就是 传递对象时修改了对象的属性,函数外部的对象也会有相应的修改,就误认为是按照引用传递的

 function setAge(obj) {
        obj.age = 10;
    }

    let obj = {};

    setAge(obj);

    console.log(obj); // {age: 10}

1561025017(1).png

当把参数重新定义为一个新的对象时,这时外部obj.age的值不会改变,因为函数内的obj定义为新对象时,会为这个对象在堆中分配一个空间,并将内部的obj指向新的对象

 function setAge(obj) {
        obj.age = 10;
        obj = {};
        obj.age = 100;
    }

    let obj = {};

    setAge(obj);

    console.log(obj); // {age: 10}

1561026033(1).png

高程三的原话是这样的:


1641127494-55cdb2570cba9_articlex.png

自己的理解, 如果有错误的地方,希望指出

相关文章

  • Vue-Router2.0使用1

    main.js router.js 跳转 传递参数 接受参数 返回

  • Vue--------vue-router

    app.vue router/index.js 参数传递 方法一(name传递参数) 在index.js里设置na...

  • js 传递参数

    ECMAScript中所有函数的参数都是按值传递的。 把函数外部的值复制给函数内部的参数,和把值从一个变量复制到另...

  • js 传递参数

    昨晚看了红宝书的《JavaScript高级程序设计》第三版 4.1.3 参数传递,第二天早晨看到了冴羽的JavaS...

  • js 传递参数

    所有函数的参数都是按值传递的 【复制变量值】复制基本类型变量的值,会在该变量对象上创建一个新值,然后把该值复制到新...

  • 老董答疑总结(第二周)

    【课程相关】 sol代码里面函数参数是uint,js传递参数是负数的话,sol那边无法识别是否负数吧,如果js传递...

  • Fetch POST传递参数及Node.js接收参数

    Fetch POST传递参数及Node.js接收参数 标签(空格分隔): Node.js XMLHttpReque...

  • 使用a标签打开新页面并传递参数

    使用js的方式可以实现a标签传递参数

  • JS中函数的参数

    参数不是必需的 在JS函数中,通常要通过参数来传递数据。但是JS和其他编程语言不一样的地方在于,JS并不在乎你传递...

  • JS读取Django模板语法的值

    Django 视图层传递参数到前端JS 使用safe过滤 views.py js

网友评论

      本文标题:js 传递参数

      本文链接:https://www.haomeiwen.com/subject/bwokqctx.html