• js中的的参数都是以值传递的 对象的值保存在堆内存中 对象的地址保存在栈内存中


    值传递
    代码举例:

    function swap(a,b){ //定义时,ab为形参
    document.write("x="+a+" "+"y="+b+"<br/>");
    var temp;
    temp = a;
    a = b;
    b = temp;
    document.write("x="+a+" "+"y="+b+"<br/>");
    } //函数声明
    var x=1,y=2;
    document.write("x="+x+" "+"y="+y+"<br/>");
    swap(x,y); //调用时自左向右传递,xy为实参,基本数据类型,值传递。函数调用
    document.write("x="+x+" "+"y="+y+"<br/>");
    结果为

    x=1 y=2
    x=1 y=2
    x=2 y=1
    x=1 y=2

    址传递
    代码举例:

    function swap(a){ //引用类型
    document.write("a[0]="+a[0]+" "+"a[1]="+a[1]+"<br/>"); //有两个名字
    var temp;
    temp = a[0];
    a[0] = a[1];
    a[1] = temp;
    document.write("a[0]="+a[0]+" "+"a[1]="+a[1]+"<br/>");
    }
    var A = [1,2]; //此处数组传递的是对象,传递的是A的地址
    document.write("A[0]="+A[0]+" "+"A[1]="+A[1]+"<br/>");
    swap(A); //实参,A作为对象,object类型,引用(地址)传递
    document.write("A[0]="+A[0]+" "+"A[1]="+A[1]+"<br/>");
    结果为

    A[0]=1 A[1]=2
    a[0]=1 a[1]=2
    a[0]=2 a[1]=1
    A[0]=2 A[1]=1

  • 相关阅读:
    判断字符串是否包含某一个值方法
    生成一个随机手机号
    python 常用数据类型及操作方法
    selenium 常用的定位方法
    mysql 多表查询
    转载--python全栈开发学习
    Jenkins执行jmeter自动化脚本方法
    阅读方法
    pytorch学习
    英文阅读材料记录
  • 原文地址:https://www.cnblogs.com/luhu/p/16143332.html
Copyright © 2020-2023  润新知