背景
很多开发同学分不清,实参和形参。什么条件下形参的变化会映射给实参,今天我们就着重的讲一讲形参可以映射到实参的哪些场景。
函数
函数是javascript中的头等对象(first-class),因为他可以向像对象一样拥有属性和方法,区别是函数可以被调用。因此函数称之为Function对象。
函数的定义
定义一个函数也叫函数的声明由以下组成:
- 函数的名称。
- 函数参数列表也叫做形参,包围在括号中并由逗号分隔。
- 定义函数的 JavaScript 语句,用大括号{}括起来
function getName(people, age) {
return {
people,
age,
}
}
形参
形参j就是定义函数是在括号中()
中定义的变量,作用域为当前函数
实参
调用函数传递的值为实参会有一下两种情况
- 如果实参是一个
原始值的
变量,就算在函数内部改变了对应形参的值,该实参变量的值也不会改变。 - 如果实参是一个
对象引用
,对应形参会和该实参指向同一个对象,非原始类型的变量就是一个指针,而实参和形参指向了同一个指针,因此函数体内改变对应的形参
。
const p = {
name: 'mary',
age: 12,
}
let age = 24;
function getName(people, age) {
people.name = 'tom',
people.age = 1;
age = 20;
}
getName(p, age);
console.log(p, age); // {name: 'tom', age:1} 24;