-
函数的参数:
- 形式参数(形参):在函数声明的时候,写在()中的变量,形参在函数内部作为局部变量使用,形参用来占位
- 实际参数(实参):在函数调用的时候,写在()中的变量(对象)
-
函数的调用:
- 内部会把实参赋值给形参
- 实参可能是值类型的也可能是引用类型的
-
值类型的数据作为函数的参数:
- 在函数内部修改了形参的值(a),对函数外部的实参不会产生影响,他们是相互独立的。
-
引用类型的数据作为函数的参数:
- 在函数内部修改了形参的值(paramObj),对函数外部的实参会产生影响,因为他们共享内存中的同一块数据
示例代码:
<script>
var num = 10;
function func(a) {
console.log(a); //10
a = 20;
console.log(a); //20
}
func(num);
console.log(num); //10
var obj = {
name:"张三"
}
function foo(paramObj) {
//obj 和 paramObj 共享同一块内存中的数据
console.log(paramObj.name); //张三
paramObj.name = "李老汉";
console.log(paramObj.name); //李老汉
//paramObj 通过字面量重新开辟了一块内存空间,切断了与obj的联系,不再共享同一块内存空间的数据
paramObj = {
name:"老王"
}
console.log(paramObj.name); //老王
}
foo(obj);
console.log(obj.name); //李老汉