const person = {
name: "Lydia Hallie",
hobbies: ["coding"]
};
function addHobby(hobby, hobbies = person.hobbies) {
hobbies.push(hobby);
return hobbies;
}
addHobby("running", []);
addHobby("dancing");
addHobby("baking", person.hobbies);
console.log(person.hobbies);// ['coding', 'dancing', 'baking']
解释:
第一次调用函数的时候,给了两个参数,"running" push进空数组[]里面,所以打印['runing']
第二次调用函数的时候,只传了一个参数,hobbies就默认成person对象里的了,上次的['runing']被替换了,所以打印['coding', 'dancing']
第三次调用函数的时候,hobbies是上次的['coding', 'dancing'],再把"baking"push进去,就变成了['coding', 'dancing', 'baking']