JS에서는 함수 호출 방식과 관계없이 this를 지정할 수 있음
const mike = {
name: 'Mike',
};
const tom = {
name: 'Tom',
}
function showThisName() {
console.log(this.name);
}
showThisName(); // 아무것도 나오지 않음
showThisName.call(mike); // Mike
showThisName.call(tom); // Tom
// 함수.call()의 인자로 객체를 넘기면 this에 할당됨
function update(birthYear, occupation) {
this.birthYear = birthYear;
this.occupation = occupation;
}
update.call(mike, 1999, 'singer');
update.call(tom, 2002, 'teacher');
update.apply(mike, [1999, 'singer']);
update.apply(tom, [2002, 'teacher']);
const updateMike = update.bind(mike);
// mike 객체가 할당되어 update기능을 수행하는 updateMike라는 함수를 만듦
댓글 없음:
댓글 쓰기