zoukankan      html  css  js  c++  java
  • 怎样理解函数参数的传递

    前言: 基本类型(数值 / 字符串 / 布尔值)和引用类型(对象)作为参数传递给函数时的行为是不一样的.

    基本类型传递的是值的地址, 它在函数内部的改变不会影响到原变量. 

    引用类型传递的是引用的地址, 它在函数内部的改变实际上是对原变量的改变. 

    第一步: 下面演示基本类型的值做实参时的情况

    function change(bol){
        bol = !bol;
        console.log(bol)
    }
    
    var a = true;
    change(a); // false
    console.log(a); // true;

    注意: 这里在函数内部改变了形参的值, 但外部的a的值并没有发生改变. 这是基本类型的特征;

    第二步: 下面演示引用类型的值做实参时的情况

    function addName(obj) {
        obj.name = "Lilei";
        console.log(obj.name); // Lilei
    }
    
    var person = {};
    addName(person); // Lilei
    console.log(person.name); // Lilei

    注意: 这里对象作为实参传递给函数时, 实际传递的是引用, 在函数内部操作的obj指向的内存地址实际上就是person指向的内存地址, 因此其改变会影响obj和person;

  • 相关阅读:
    [GXOI/GZOI2019] 旧词
    [HDU6756] Finding a MEX
    [洛谷P5110] 块速递推
    [CF739C] Alyona and towers
    1349. 修理牛棚
    L2-028 秀恩爱分得快 (25 分)
    L2-009 抢红包 (25 分)
    L1-043 阅览室 (20 分)
    2020年天梯赛-模拟赛 L1-6 检查密码 (15 分)
    L1-046 整除光棍 (20 分)
  • 原文地址:https://www.cnblogs.com/aisowe/p/11634676.html
Copyright © 2011-2022 走看看