函数的参数传递方式
js中所有函数的参数都是按值传递的,我们按传递基本类型和引用类型进行区分。
首先传递基本类型时,被传递的值会复制给命名参数,命名参数是一个局部变量,在函数中改变这个局部变量,不会影响外部变量。举例如下:
function fn(num){
num++
return num
}
let count = 1
let res = fn(count)
console.log(count) //1
console.log(res) //2
传递引用类型时,会把内存中的地址复制给局部变量,由于内外变量指向同一对象,在函数内部改变这个对象就会同时改变外部变量。举例如下:
function fn(obj){
obj.name = 'pzx'
}
let person = new Object()
fn(person)
console.log(person.name) //‘pzx’