function a() {
var b = ["b"];
console.log(b);
//console.log(b.slice());
b = b.push("bb");
}
a();
В "идеальном" мире вы можете подумать, что console.log будет показывать ["b"], но, как ни странно, он показывает ["b", "bb"], хотя "bb" не нажимается до тех пор, пока впоследствии.
Если вы сделаете console.log(b.slice()); Затем вы получите желаемый результат ["b"]. Почему это? Какая причина этого осложнения? Я просто хочу понять это лучше, чтобы я мог избежать этого.
* Примечание. Я затронул эту точку в недавнем вопросе, но это гораздо более краткий пример. @RightSaidFred привел меня к этому моменту и оказал огромную помощь до сих пор.