es6와서 추가된 문법이다.
함수 선언방식으로 더 간결하게 함수를 선언할수 있다.
const a = function() {
return "hello";
};
const b = function(a) {
return a * 2;
};
const c = function(a, b) {
return a + b;
};
const d = function(a, b) {
console.log(a * b);
};
const a = () => "hello";
const b = a => a * 2;
const c = (a, b) => a + b;
const d = (a, b) => {
console.log(a * b);
};
const e = () => {
a:1 ,
b:2
}; // 에러
1.매개변수가 하나일 경우 ()생략가능
2.없거나 2개이상일경우 ()생략불가능
3.본문이 단순 return(식or값)일 경우 {}생략가능
4.return 값이 객체일경우 {}생략 불가능
const obj = {
a: function() {
console.log(this); //obj
const b = () => {
console.log(this); //obj
};
b();
}
};
obj.a();
실행 컨텍스트 생성시 this 바인딩을 하지 않는다.
또한 call,apply로 this를 바인딩해줘도 마찬가지이다.
const a = () => {
hi: "hello";
};
const b = () => {
console.log(this);
};
b.call(a); //window