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๋ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐฐ์ด๋ก ๋ฌถ์ด ์ ๋ฌํฉ๋๋ค.