var와 const의 차이?
406
11 asked
const a = 10;
const obj = {
a: 20,
b() {
console.log(this.a); // this === obj
function c() {
console.log(a); // 10
console.log(this); // window
console.log(this.a); // undefined
}
c();
}
}
obj.b();
위 코드에서 function c() 내부의 console.log(this.a)가 undefined를 출력하는 이유가 뭘까요?
전역공간에서 a를 var로 선언하면 10이 나오는데, const로 선언하면 undefined가 나오네요.
어떤 원리인지 궁금합니다.
+ 좋은 강의 정말 감사드립니다! 덕분에 JS를 보는 눈이 확 트인 것 같아요.
Answer 2
1
본 강의는 ES5 하위의 자바스크립트 코어를 다루는 강의입니다.
const, let은 ES6에서 새로 도입된 것이라서 강의 범위에서 벗어납니다.
또한 생각보다 많은 내용을 다뤄야 하기 때문에 여기서 몇 마디 문장으로 간단히 설명드릴 수는 없어요.
나아가 다른 강의(https://www.inflearn.com/course/ecmascript-6-flow)및
교재(http://www.yes24.com/Product/Goods/78586788)에 이미 포함된 내용이기도 해요.
"var vs const" 로 구글링하시면 만족스러운 답을 찾으실 수 있으리라 생각해요.
인스턴스에서 prototype 프로퍼티에 직접 접근해야하는 이유
0
59
1
setTimeout 에서 this
0
80
1
2강부터 영상이 나오지 않습니다.
0
173
1
자바스크립트 주석에 이상한 점이 있어서 문의드립니다.
0
218
2
return 문 안에 여러 함수가 존재하는 것이 이해되지 않습니다.
1
259
1
클래스 static 멤버
1
252
1
실행컨텍스트와 스택프레임
2
565
1
프로토타입으로 상속할때 브릿지 사용 이유
0
320
1
호이스팅 관련 질문
1
335
1
책 66p. 예제 3-2 질문입니다.
0
356
1
강의 내용 10:58 캡슐화 질문입니다.
1
397
1
강의 내용 5:10 질문입니다.
1
422
2
전역 공간에서의 this
0
426
2
18:31 addEventListener의 this
1
479
1
outerEnvironmentReference 질문
1
372
1
실행 컨텍스트와 클로저에 대해 질문드립니다.
1
448
1
Object.prototype.constructor의 [[prototype]] ?
1
658
1
함수를 값으로 할당할 때
2
457
1
15:54 'ddd' 사라지는 오류?
4
375
1
프로토타입 getPrototypeOf(instance).constructor(n,a) 질문입니다.
1
402
1
기본형/가변형 질문입니당
0
331
0
선생님 그러면 섹션 0만 봐도 무방한가요!?
0
333
1
Hoisting과 environmentRecord에 관한 질문입니다.
1
288
1
안녕하세요, 데이터 변경 질문입니다.
0
322
1

