函数传递参数 是 值传递

 1 // 函数传递参数 是 值传递
 2     function addTen(num){
 3         num += 10;
 4         return num;
 5     }
 6 
 7     var count = 20;
 8     var result = addTen(count);
 9     console.log(result);    // 30
10     console.log(count);        // 20 count在addTen 里面是局部参数,不会改变外部的值
11 
12     //===========================================================
13     function setName(obj){
14         obj.name = "Nick";
15     }
16     var person = {};
17     setName(person);
18     console.log(person.name);    // Nick
19 
20 
21     // =======================================================
22     function setSex(obj){
23         obj.sex = "Fimale";
24         obj = {};                // 如果 person1 是按引用传递的,那么 person1 就会自动被修改为指向sex 为 Man 的新对象
25         obj.sex = "Man";
26     }
27     var person1 = {};
28     //person1.sex = "Woman";
29     setSex(person1);
30     console.log(person1.sex);    // "Fimale"
31 
32     // =+++++++++++++++++++++++++++++++++++++++++++++++++++++
33     var color = "blue";
34 
35     function changeColor(){
36         var anotherColor = "red";
37 
38         function swapColors(){
39             var tempColor = anotherColor;
40             anotherColor = color;
41             color = tempColor;
42         }
43 
44         swapColors();
45     }
46 
47     changeColor();

  基本类型(undefined, null, Boolean, number, string) 跟 引用类型的区别:

一: 引用类型可以添加自定义的属性,或者删除;

二: 复制变量值(基本类型是复制副本;引用类型是引用同一个内存对象)

三: 如上面代码所示的,函数参数传递是“值传递”。

  

疯癫不成狂,有酒勿可尝;世间良辰美,终成水墨白。
原文地址:https://www.cnblogs.com/chuyu/p/3359123.html