zoukankan      html  css  js  c++  java
  • 再次学习javascript中的參数传递

     javascript中的全部函数的參数传递都是依照值传递的,做了以下測试:

      

    function addTen(num){
    	num +=10;
    	return num;
    }
    
    var count = 20;
    var result = addTen(count);
    alert(cont);		//20
    alert(result);	//30
      好吧。上面仅仅是做了基本类型的传递,再做个引用类型的传递看看:

    function setName(obj){
    	obj.name="Mark";
    }
    
    var person = new Object();
    setName(person);
    alert(person.name);		//Mark
    这样看起来是引用传递,不是值传递,那么再做个測试:

    function setName(obj){
    	obj.name="Mark";
    	obj = new Object();
    	obj.name = "David";
    }
    
    var person = new Object();
    setName(person);
    alert(person.name);		//Mark
    这个样例与前面一个样例的唯一的差别就是在setName()的函数后面添加 了两行代码:一行代码为obj又一次定义了个对象。还有一行代码为该对象定义了一个带有不同值的name属性。在把persion传递给setName()函数后,其name属性被设置为Mark,然后将一个新对象赋值给obj,同一时候其name属性设置为David。假设person是依照引用传递的,那么person就会自己主动被改动为指向其name属性值为David的新对象。可是,当接下再訪问person.name时。显示的值仍是Mark。这说明即使在函数内部改动了參数的值。但原始的引用仍然保持未变。实际上。当在函数内部重写obj时,这个变量引用的就是一个局部对象了。而这个局部对象会在函数运行完后被销毁。


  • 相关阅读:
    hystrix项目实战
    hystrix实战总结;
    JAVA后端生成Token(令牌),用于校验客户端,防止重复提交
    如何防止表单的重复提交
    hystrix实战
    字符串为空的错误发生
    zuul的学习
    feign无法注入service
    springcloud实战案例苏宁和海信
    RPC与REST的区别
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/9944851.html
Copyright © 2011-2022 走看看