inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 중고급: 엔진 핵심

6. this와 콜백 함수

안녕하세요

180

정세연

작성한 질문수 15

1

안녕하세요 강사님.

수업 즐겁게 잘 듣고 있습니다.

this에 관해 여쭙고 싶은게 있습니다.

      function a() {
        var point = 100;
        function b() {
          console.log(this);
        }
        b();
      }
      a();
이 코드에서는 this가 window로 나오는 이유를 알고 싶습니다.
var a = {
        point: 100,
        b: function () {
          console.log(this);
        },
      };
      a.b();
이 코드에서는 b 앞의 오브젝트가 있기에 this가 a를
가리키는 것은 이해하였습니다.
그렇다면 위와 같은 코드에서 a 내부의 point를 활용하기
위해서는 클로저를 이용하거나 bind로 a를 묶어주는
방법을 사용해야 하나요??
오브젝트.함수 와 같이 오브젝트가 없다면 함수 내부에서
실행되더라도 this가 window를 가리키는건지 여쭙고
싶습니다. 강의를 많이 돌려보았는데 this는 어려운 것
같습니다 ㅜㅜ

javascript

답변 1

0

김영보

코드에서는 this가 window로 나오는 이유를 알고 싶습니다.

function a() {
  var point = 100;
  function b() {
    console.log(this);
  }
  b();
}

위 코드는 우선 "use strict"를 작성하지 않았습니다. "use strict"를 작성하면 window가 아니라 undefined가 출력됩니다.

위 코드는  아래와 같으므로 this가 window 오브젝트를 참조하게 됩니다.

window.a = function(){
  function b() {
    console.log(this);
  }
  b();
};
window.a();

---------------------

var a = {
  point: 100,
  b: function () {
    console.log(this);
  },
};
a.b();

그렇다면 위와 같은 코드에서 a 내부의 point를 활용하기 위해서는 클로저를 이용하거나 bind로 a를 묶어주는 방법을 사용해야 하나요??

==> 아래 처럼 사용합니다. a.b() 형태로 호출하면 b()에서 this가 a를 참조하므로 this.point로 값을 구할 수 있습니다.
console.log(this.point);

------------------
비기너 강좌를 등록하셨네요. 그러면 여기서 진도를 나가지 말고 비기너를 다시 처음부터 코딩하면서 들으시기 바랍니다. 반드시 코딩을 해야 합니다. 느릴 것 같지만 느리지 않습니다. 기반이 튼튼해야 건물을 높게 지을 수 있습니다. 

getBook 실습 예제중 질문드립니다!

0

433

1

__proto__ 에 대해 질문드립니다

0

325

1

호이스팅 코딩시간 풀이

0

372

1

[코딩 시간] JS {name: value} 이해

0

348

1

[[Scope]] 와 [[Environment]]는 같은 개념인가요

0

350

0

slice

0

243

0

스코프가 뭔가요?

0

315

0

어려워요

0

261

0

강사님 변수이름에 get을 붙이는 이유를 알고싶습니다.

0

349

1

[정리 시간] 정확하게 이해했는지 확인 부탁드립니다.

0

308

0

스코프 질문

0

259

1

fn 함수와 book.get 함수 차이 질문드립니다...ㅠㅠㅠ

1

554

1

this binding 논리 질문입니다.

0

289

1

파라미터 값을 매핑할 때

0

256

0

ES6부터는 this 바인딩을 환경 레코드에서 참조한다고 들었습니다.

0

212

0

정리시간 입니다.

0

231

0

정리시간입니다.

6

278

0

정리 시간 입니다.

0

209

0

정리시간입니다.

6

236

0

코딩시간 입니다.

1

230

0

선생님 스코프 질문이 있습니다.

1

245

0

[정리시간] 해보았습니다!

0

183

0

선생님 질문있습니다!!

0

162

0

질문드려도 될까요 선생님..

0

221

0