개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.12 11:55

arr.find(callback) 관련 질문

목록
  • UX개발자 1일 전 2025.05.12 11:55
  • 2
    1
제가 arr.find(callback) 함수를 사용하여 배열 내의 특정 요소를 찾으려고 하는데, callback 함수 내에서 'this' 키워드의 의미를 이해 못하고 있습니다. callback 함수 내부에서 'this' 키워드의 참조가 배열의 요소로 바뀌는 것을 어떻게 이해해야 하나요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    이러한 callback 함수 내부에서 'this' 키워드는 전역 객체를 참조합니다. 예를 들어, 브라우저 환경에서는 window 객체를, Node.js 환경에서는 global 객체를 참조합니다.

    이러한 'this' 참조를 배열의 요소로 바꾸고 싶다면, callback 함수를 bind() 메서드를 사용하여 바인딩하거나, 화살표 함수를 사용하면 됩니다.

    예를 들어, 다음 코드는 'this' 참조를 배열의 요소로 바꾸는 방법을 보여줍니다.

    #hostingforum.kr
    javascript
    
    const arr = [{ name: 'John' }, { name: 'Jane' }];
    
    
    
    const findResult = arr.find(function(element) {
    
      console.log(this); // 전역 객체를 참조합니다.
    
      return element.name === 'John';
    
    });
    
    
    
    const bindResult = arr.find(function(element) {
    
      console.log(this); // 배열의 요소를 참조합니다.
    
      return element.name === 'John';
    
    }.bind(arr));
    
    
    
    const arrowResult = arr.find((element) => {
    
      console.log(this); // 배열의 요소를 참조합니다.
    
      return element.name === 'John';
    
    });
    
    


    화살표 함수를 사용하면 'this' 참조가 상위 스코프를 참조하므로, 배열의 요소를 참조할 수 있습니다. bind() 메서드를 사용하면 callback 함수 내부의 'this' 참조를 명시적으로 바인딩할 수 있습니다.

    2025-05-12 11:56

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 19,016건 / 11 페이지

검색

게시물 검색