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
     
     
    还有很多不足的地方,希望给予指正。
     
     
  • 相关阅读:
    [Android学习笔记]Activity
    [Android学习笔记]Activity,View,Windows简介
    [Android]Eclipse的使用
    [Cocos2d-x]解决Android平台ndk-build时不自动删除外部库
    [Cocos2d-x]Android的android.mk文件通用版本
    [C++][STL]string记录
    nyoj-103-A+B Problem II
    nyoj-95-众数问题
    nyoj-187-快速查找素数
    nyoj-8-一种排序
  • 原文地址:https://www.cnblogs.com/chenyudi/p/11069546.html
Copyright © 2011-2022 走看看