zoukankan      html  css  js  c++  java
  • js的传递方式

    回头过来复习一下。

    从一个变量向另一个变量复制的时候,复制过去以后,都是单独独立的变量,当你改变其中一个的时候,并不会影响另一个变量。他们只是value相同而已;

    var a = 1;

    var b= a;

    b += 1;

    console.log(a);   // 1

    console.log(b);  //2

    // 对象赋值,改变的只有指针。其中的值并没有改变 他们不是相对独立的
    var a = new Object();
    a.name = 1;

    var b = a;
     b.name = 5;

    console.log(b); //5
    console.log(a); // 5
     
     
    // .函数传递值类型:
    // 声明变量num并复制为10,这个是num是一个值类型,当为函数传递参数的时候,是将此值复制一份传递给函数,所以在函数执行之后,num本身的值并没有被改变,函数中被改变的值仅仅是一个副本而已。
    var a = function(num){
    num +=10;
    return num;
    }
    var num = 10;
    var b = a(num);

    console.log(num); //10
    console.log(b); //20
     

    // 函数传对象
    //这个地方的和对象传值一样 传递的是指针 所以当a当做参数传入b的时候,在b里发生了改变,所以,a的name也发生改变
    var a = {
    name:"tom"
    }
    function b(c){
    c.name = "cyd";
    return c;
    }
    var d = b(a);

    console.log(d.name); //cyd
    console.log(a.name); //cyd
     
     
    //这时候的的传值 我理解的是:在不同作用域下的俩个对象 是相互独立的,不干扰的;所以传过来的值没有变化
    var a = {
    name:"tom"
    };
    function b(c){
    c={
    name:"cyd"
    }
    return c;
    }
    var d = b(a);
    console.log(d.name); //cyd
    console.log(a.name); // tom
     
     
    还有很多不足的地方,希望给予指正。
     
     
  • 相关阅读:
    .net Thrift 之旅 (一) Windows 安装及 HelloWorld
    软件测试中的过度设计
    血型和测试
    功能点算法及在软件测试中的应用Part2
    尘归尘 土归土
    解读SAO文化中的Share
    使用C#开发winform程序的界面框架
    怎样才能说明软件测试工作做的好?
    功能点算法及在软件测试中的应用Part1
    软件测试的核心价值是什么?
  • 原文地址:https://www.cnblogs.com/chenyudi/p/11069546.html
Copyright © 2011-2022 走看看