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 привел меня к этому моменту и оказал огромную помощь до сих пор.