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) 跟 引用类型的区别:
一: 引用类型可以添加自定义的属性,或者删除;
二: 复制变量值(基本类型是复制副本;引用类型是引用同一个内存对象)
三: 如上面代码所示的,函数参数传递是“值传递”。