call๊ณผ apply๋ ํจ์๋ฅผ ํธ์ถํ๋ ๋ฉ์๋์
๋๋ค. ์ด ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ํจ์์ this ๊ฐ์ ๋ช
์์ ์ผ๋ก ์ค์ ํ ์ ์์ต๋๋ค.
call๊ณผ apply์ ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ ํจ์ ๋ด๋ถ์์ this๊ฐ ๊ฐ๋ฆฌํฌ ๊ฐ์ฒด๋ฅผ ์ค์ ํฉ๋๋ค.
function greet() {
console.log(`Hello, ${this.name}!`);
}
const person = {
name: 'Alice'
};
greet.call(person); // "Hello, Alice!"
greet.apply(person); // "Hello, Alice!"์ฌ๊ธฐ์ call๊ณผ apply๋ฅผ ์ฌ์ฉํ์ฌ greet ํจ์๋ฅผ ํธ์ถํ ๋, this๋ person ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํต๋๋ค. ๋ฐ๋ผ์ Hello, Alice!๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.
ํ์ง๋ง ๋๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ์์์๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
function greet(greeting) {
console.log(`${greeting}, ${this.name}!`);
}
const person = {
name: 'Alice'
};
greet.call(person, 'Good morning'); // "Good morning, Alice!"
greet.apply(person, ['Good morning']); // "Good morning, Alice!"call์ ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ๋์ดํ์ฌ ์ ๋ฌํ๋ ๋ฐ๋ฉด, apply๋ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐฐ์ด๋ก ๋ฌถ์ด ์ ๋ฌํฉ๋๋ค.