얼마전 제이쿼리 코딩을 하다 자바스크립트의 람다와 관련된 흥미로운 사실을 알게되었다.
이전에 자바의 람다와 this에 관련한 포스팅을 했었는데
https://dev-jones.tistory.com/179?category=926603
람다 표현식과 this 키워드에 관하여
@FunctionalInterface interface MyFunction { R apply(T t); } 위와 같은 함수형 인터페이스가 있을 때 익명클래스를 작성하여 인터페이스의 인스턴스를 얻을 수 있다. MyFunction plus30 = new MyFunction () {..
dev-jones.tistory.com
요약하자면 익명함수와 람다표현식에서의 this가 가리키는게 다르다는 것이다.
자바스크립트도 똑같다.
다음예제를 보자.
var val = 200;
var _var = {
val : 100,
a : function() {
var _a = this.val;
console.log('_a :', _a); // 100
}
}
_var.a();
var val = 200;
var _var = {
val : 100,
a : () => {
var _a = this.val;
console.log('_a :', _a); // 200
}
}
_var.a();
함수형 사고는 참 어려운일인것 같다.
'자바스크립트' 카테고리의 다른 글
배열(2) (0) | 2022.01.08 |
---|---|
배열(1) (0) | 2022.01.08 |
자바스크립트와 call by (0) | 2021.11.29 |
대입 연산자 '=' 에 대하여 (0) | 2021.06.13 |
new 연산자와 생성자 함수 (0) | 2021.04.03 |