inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 비기너: 튼튼한 기본 만들기

3. 콜백 함수를 가진 Array 메소드, forEach()

질문드리겠습니다!

해결된 질문

126

twosom

작성한 질문수 69

0

forEach 에서 this를 참조 시에 

콜백 함수를 람다식으로 대체하면 this가 원래 참조가 안되는건가요!

아무리 시도해봐도 람다식으로 대체한 콜백함수문에서는 NaN만 출력되서 너무 답답합니다 ㅠㅠ

그에 반해 콜백함수 부분을 따로 외부로 빼니 잘 인식되는걸로 봐서는 원래 람다식에서는 this를 참조할수가 없는지 헷갈립니다.

항상 감사드립니다,

let list = [1, 2, 3];

list.forEach((value, index, array) =>
console.log(value + this.ten), {ten: 10});

let fn = function (value, index, array) {
console.log(value + this.ten);
}


list.forEach(fn, {ten: 10})

oop javascript

답변 1

3

김영보

화살표 함수(=>)는 "자바스크립트 ES6+ 기본" 강좌에서 다룹니다만, 함수가 속한 환경에 따라 this가 참조하는 오브젝트가 다릅니다.

작성된 코드에서는 window 오브젝트를 참조합니다.

이런 형태를 취하는 목적은 함수를 가볍게 사용하겠다는 것입니다.
화살표 함수에는 prototype이 없습니다.
따라서 prototype에 메소드를 연결할 수 없으며,
이것은 new 연산자로 인스턴스를 생성하지 않겠다는 것이 됩니다.

0

twosom

감사합니다! ES6 기본강좌에서 제대로 배워보겠습니다~~!

프론트엔드 부트캠프 가기 전, 짧은 감사 인사드립니다!

2

109

2

섹션10 3. Object 프리미티브 값 구하기에서 질문있습니다.

1

148

2

섹션3의 1강 연산자, 표현식 강의에서 표현식 질문이 있습니다.

0

140

2

섹션 1. 6번째 강의 질문입니다.

1

246

1

선생님 Objcet 질문 있습니다.

0

299

2

forEach문을 활용한 코딩시간 풀이

0

616

1

sort 코딩 시간 풀이

0

292

1

코딩 시간 풀이 올려봅니다.

0

229

1

인덱스 코딩시간 문제풀이

0

381

1

for문 코딩 시간 답제출

0

306

1

3:39 sort에 들어가서 one,two 파라미터질문입니다.

0

194

0

퀴즈 질문 및 정답

0

356

1

오브젝트

0

283

1

인스턴스 목적

1

239

1

[코딩시간 01] 3항 연산자로 작성했을 때, 각 값..?

0

269

1

Undefined === Null; // true???

0

194

1

indexOf의 파라미터에 음수를 작성 했을때에 대한 질문입니다.

0

1031

5

length 값 변환 논리에 대한 질문입니다.

0

211

1

상수 변수 선언에 대해

0

235

1

코딩 시간 (for문) 풀이

0

255

1

Object vs object

1

498

1

코딩 시간 풀이입니다.

0

195

1

log(add(1, 2, 3, 4));

0

177

1

코딩시간 답 제출

0

196

1