var arr = [1,2,3];
arr.__proto__.remove3 = function() {
let result = [];
arr.forEach(function(v) {
if (v != 3) {
result.push(v);
}
});
arr = result;
};
arr.remove3();
console.log(arr);
위와 같이 코드를 작성했습니다. 문제 없이 동작하지만 gpt에 따르면 우연일 뿐이고 arr = result;에서 arr은 전역의 arr을 가리킨다는 보장이 없다는데 무슨 말인지 도저히 이해가 안됩니다.
result에는 [1,2]가 담기게 되고 arr = result;를 통해 arr의 참조가 바뀌니까 결국 console.log(arr);하면 [1,2]가 문제 없이 출력될 것이라 생각했습니다.