화살표 함수
- 화살표 함수에는
this
가 없다. 화살표 함수 본문에서 this
에 접근하면, 외부에서 값을 가져옴
this
가 없기 때문에 화살표 함수는 생성자 함수로 사용 불가능. new
와 함께 호출 불가능
let drink = {
title: "wine",
kinds: ["red", "white", "rose"],
showList() {
this.kinds.forEach(
kind => alert(this.title + ': ' + kind)
);
}
};
drink.showList();
- 화살표 함수 본문에 있는
this.title
은 화살표 함수 바깥에 있는 메서드인 showList
가 가리키는 대상과 동일. 즉, this.title
은 drink.title
과 동일
- 화살표 함수에서는 모든 인수에 접근할 수 있게 해주는 유사 배열 객체
arguments
미지원
function defer(f, ms) {
return function() {
setTimeout(() => f.apply(this, arguments), ms)
};
}
function sayHi(who) {
alert('Hi, ' + who);
}
let sayHiDeferred = defer(sayHi, 3000);
sayHiDeferred("Chungsik");
function defer(f, ms) {
return function(...args) {
let ctx = this;
setTimeout(function() {
return f.apply(ctx, args);
}, ms);
};
}