• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 constructor/prototype 연습문제 4번 질문드립니다.

constructor/prototype 연습문제 4번 질문드립니다.

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #138998

    hjlee
    참가자
    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]가 문제 없이 출력될 것이라 생각했습니다.
    #139001

    codingapple
    키 마스터
    프로토타입에 추가했으니까 다른 array에도 remove3()을 붙일 수 있을텐데
    다른array.remove3() 하면 다른array가 아니라 arr에서 3을 빼주게 되어서 그러나봅니다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠