일반 함수의 this는 호출 위치에서 정의하고,
화살표함수의 this는 자신이 선언된 함수(렉시컬) 범위에서 정의
ex) 아래와 같이 화살표함수의 this를 console.log로 출력 해 보면 Ricardo Quaresma가 출력 됨.
function user() {
this.firstName = 'Ricardo'
this.lastName = 'Quaresma'
return {
firstName: 'Cristiano',
lastName: 'Ronaldo',
age: 85,
getFullName: () => {
return `${this.firstName} ${this.lastName}`
}
}
}
const u = user()
console.log(u.getFullName())
ex) 아래와 같이 일반함수의 this를 console.log로 출력 해 보면 Cristiano Ronaldo가 출력 됨.
function user() {
this.firstName = 'Ricardo'
this.lastName = 'Quaresma'
return {
firstName: 'Cristiano',
lastName: 'Ronaldo',
age: 85,
getFullName: function () {
return `${this.firstName} ${this.lastName}`
}
}
}
const u = user()
console.log(u.getFullName())
return {
firstName: 'Cristiano',
lastName: 'Ronaldo',
age: 85,
getFullName: function () {
return `${this.firstName} ${this.lastName}`
}
위의 경우에
return {
firstName: 'Cristiano',
lastName: 'Ronaldo',
age: 85,
getFullName: function () {
return `${this.firstName} ${this.lastName}`
}
메소드에서 function키워드를 사용할 때, 아래와 같이 콜론기호를 생략 할 수있음.
단 화살표함수에서는 사용 불가능.
return {
firstName: 'Cristiano',
lastName: 'Ronaldo',
age: 85,
getFullName() {
return `${this.firstName} ${this.lastName}`
}