개발자 Q&A

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

2025.07.31 20:57

Closure::bind에 대한 질문

목록
  • 코드마스터 1일 전 2025.07.31 20:57
  • 4
    1
제가 이해한 바에 따르면 Closure::bind는 함수의 this 바인딩을 변경하여 새로운 함수를 생성하는 메소드라고 합니다.

그런데, bind 메소드를 사용하여 생성된 새로운 함수는 원래 함수의 내용을 그대로 유지하면서 this 바인딩만 변경하는 것이 아닌가 합니다.

만약에 원래 함수에 인자를 전달한 경우, bind 메소드를 사용하여 생성된 새로운 함수는 인자를 전달받을 수 있는지 궁금합니다.

예를 들어, 다음과 같은 함수가 있다고 해보겠습니다.

javascript

function add(a, b) {

  return a + b;

}



이 함수에 bind 메소드를 사용하여 새로운 함수를 생성한 경우, 인자를 전달받을 수 있는지 궁금합니다.

javascript

var add2 = add.bind(null, 2);



위의 코드에서 add2 함수는 2를 첫 번째 인자로 받고, 두 번째 인자로 받은 값을 반환하는 함수가 될 것입니다.

하지만, 만약에 add2 함수에 3을 인자로 전달한다면, 다음과 같이 사용할 수 있을 것입니다.

javascript

console.log(add2(3)); // 5



위의 코드는 add2 함수에 3을 인자로 전달했을 때, 5를 반환하는 것을 확인할 수 있습니다.

이러한 경우, bind 메소드를 사용하여 생성된 새로운 함수는 인자를 전달받을 수 있는 것 같습니다.

그런데, 만약에 bind 메소드를 사용하여 생성된 새로운 함수가 인자를 전달받지 못한다면, 어떻게 될까요?

예를 들어, 다음과 같은 함수가 있다고 해보겠습니다.

javascript

function add(a, b) {

  return a + b;

}



이 함수에 bind 메소드를 사용하여 새로운 함수를 생성한 경우, 인자를 전달받지 못할 것입니다.

javascript

var add2 = add.bind(null);



위의 코드에서 add2 함수는 첫 번째 인자로 null을 받고, 두 번째 인자를 받지 못하는 함수가 될 것입니다.

만약에 add2 함수에 인자를 전달한다면, 다음과 같이 사용할 수 있을 것입니다.

```javascript
console.log(add2(

    댓글목록

    profile_image
    나우호스팅  1일 전



    bind 메소드는 함수의 this 바인딩을 변경하여 새로운 함수를 생성하는 메소드입니다.
    bind 메소드를 사용하여 생성된 새로운 함수는 원래 함수의 내용을 그대로 유지하면서 this 바인딩만 변경합니다.
    이러한 새로운 함수는 인자를 전달받을 수 있습니다.

    예를 들어, 다음과 같은 함수가 있다고 해보겠습니다.

    #hostingforum.kr
    javascript
    
    function add(a, b) {
    
      return a + b;
    
    }
    
    


    이 함수에 bind 메소드를 사용하여 새로운 함수를 생성한 경우, 인자를 전달받을 수 있습니다.

    #hostingforum.kr
    javascript
    
    var add2 = add.bind(null, 2);
    
    console.log(add2(3)); // 5
    
    


    만약에 bind 메소드를 사용하여 생성된 새로운 함수가 인자를 전달받지 못한다면, bind 메소드의 두 번째 인자부터는 무시됩니다.

    #hostingforum.kr
    javascript
    
    var add2 = add.bind(null);
    
    console.log(add2(3)); // NaN
    
    


    이 경우, add2 함수는 첫 번째 인자로 null을 받고, 두 번째 인자를 받지 못하는 함수가 됩니다.
    만약에 add2 함수에 인자를 전달한다면, 첫 번째 인자만 받을 수 있습니다.
    따라서, add2 함수는 3을 인자로 전달했을 때, NaN을 반환합니다.

    bind 메소드를 사용하여 생성된 새로운 함수는 인자를 전달받을 수 있지만, bind 메소드의 두 번째 인자부터는 무시됩니다.
    따라서, bind 메소드를 사용하여 생성된 새로운 함수는 원래 함수의 내용을 그대로 유지하면서 this 바인딩만 변경합니다.

    2025-07-31 20:58

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

검색

게시물 검색