在JS中,对象是以内存地址传参的,但是number
和string
类型是直接复制传递,如代码:
let a = {name:"Jhon",age: 18};
function birthday (person) {
person.age ++;
console.log(person.age);
}
birthday(a);
console.log(a.age);
打印结果如下:
19
19
但是如果我传递的是number
类型的数据,结果却超出预期:
let a = 10;
function add(num) {
num++;
console.log(num);
}
add(a);
console.log(a);
打印结果如下:
11
10