함수의 선언을 function 선언 대신에 => 기호를 사용한다.
밑의 네 함수 모두 같은 기능을 하는 함수이다.
function add1(x, y){
return x + y;
}
const add2 = (x, y) => {
return x + y;
}
const add3 = (x, y) => x + y;
const add4 = (x, y) => (x + y);
console.log(add1(1,2));
console.log(add2(1,2));
console.log(add3(1,2));
console.log(add4(1,2));
var relationship1 = {
name: "zero",
friends: ['nero', 'hero', 'xero'],
logFriends: function() {
var that = this;
// forEach문 안의 function의 this와 logFriends의 this(relationship1)는 서로 다르므로.
this.friends.forEach(function(friend){
console.log(that.name, friend);
});
},
};
relationship1.logFriends();
-----
결과
"zero", "nero"
"zero", "hero"
"zero", "xero"
만약 저기서 that을 this로 바꾸면 결과가 이렇게 나온다.
"result", "nero"
"result", "hero"
"result", "xero"
forEach문 안쪽의 함수를 화살표로 선언해주면 바깥 스코프의 this를 사용할 수 있다.
var relationship2 = {
name: "zero",
friends: ['nero', 'hero', 'xero'],
logFriends() {
var that = this;
this.friends.forEach(friend => {
console.log(this.name, friend);
});
},
};
relationship2.logFriends();