공부/javascript
[ javascript ] 객체안에 함수 넣기
신입개발자
2021. 6. 10. 17:17
const dog = {
name: '멍멍이',
sound: '멍멍!',
// say 라는 함수 입니다 함수를 다르게 표현할수도 있습니다
say: function say(){
console.log(this.sound);
}
// function 뒤에 함수 이름을 지울수도 있고
say: function(){
console.log(this.sound);
}
// function 이라는 키워드를 지울수도 있습니다
say(){
console.log(this.sound);
}
// 화살표 함수로 표현이 가능하지만 this를 사용하지 못합니다
say: () => {
console.log(this.sound);
}
}
함수 내부에 this는 함수가 위치한 객체 자기 자신(dog)을 가리킵니다
하지만 화살표 함수는 this를 사용하지 못합니다 화살표 함수를 쓰면 this는 자신이 속한 객체를 가리키지 못합니다
const dog = {
name: '멍멍이',
sound: '멍멍!',
say: function(){
console.log(this.sound);
},
};
const cat ={
name: '야옹이',
sound: '야옹~',
};
cat.say = dog.say;
dog.say();// 멍멍!
cat.say();// 야옹~
cat.say 에 dog.say함수를 추가했고 cat.say의 this는 cat객체의 sound를 가리킵니다
const Catsay = cat.say; // Error
객체 내부의 함수를 밖으로 꺼내면 this의 관계가 사라진다고 합니다