본문 바로가기

자바스크립트

[자바스크립트] 람다와 this

얼마전 제이쿼리 코딩을 하다 자바스크립트의 람다와 관련된 흥미로운 사실을 알게되었다.

이전에 자바의 람다와 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