JavaScript - 함수 호출
안녕하세요, 미래의 JavaScript 마법사 여러분! 오늘 우리는 함수 호출의 마법의 세상으로 뛰어들어보겠습니다. 프로그래밍에 처음 도전하신다면 걱정 마세요 - 이 여정에서 친절한 안내자로서 함께할게요. 이 수업이 끝나면 프로처럼 함수를 호출할 수 있을 것입니다!
함수 호출
まず 기본적인 내용부터 시작해보겠습니다. 함수 호출이란 무엇인가요? 이는 "함수를 호출하다" 또는 "함수를 실행하다"는 말의 세련된 표현입니다. 여러분이 로봇(함수)를 가지고 있고, 그 로봇에게 무언가를 하도록 명령을 내리는 것을 상상해보세요. 그것이 호출입니다!
다음은 간단한 예제입니다:
function sayHello() {
console.log("Hello, world!");
}
sayHello(); // 이것이 함수 호출입니다
이 예제에서 우리는 sayHello
라는 함수를 정의하고, 그 이름 뒤에 괄호를 추가하여 호출합니다. 이 코드를 실행하면 콘솔에 "Hello, world!"가 출력됩니다.
간단한 상호작용을 시도해보겠습니다:
function greetUser(name) {
console.log("Hello, " + name + "!");
}
greetUser("Alice"); // 출력: Hello, Alice!
greetUser("Bob"); // 출력: Hello, Bob!
여기서 greetUser
함수는 name
이라는 매개변수를 받습니다. 함수를 호출할 때, 괄호 안에 인자를 전달합니다. 함수는 이 인자를 사용하여 개인 맞춤형 인사를 생성합니다.
함수 생성자 호출
이제 좀 더 고급 내용에 대해 이야기해보겠습니다: 함수 생성자. 이는 객체를 생성하는 데 사용되는 특별한 함수입니다. 이게 복잡하게 들리시겠지만, 여러분을 위해 간단히 설명해드릴게요!
function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
console.log("Hi, I'm " + this.name + " and I'm " + this.age + " years old.");
};
}
var alice = new Person("Alice", 25);
alice.greet(); // 출력: Hi, I'm Alice and I'm 25 years old.
이 예제에서 Person
은 우리의 함수 생성자입니다. new
키워드를 사용하여 새로운 Person
객체를 생성합니다. 생성자 내부의 this
키워드는 새로운 객체를 가리킵니다.
객체 메서드 호출
JavaScript의 객체는 함수를 프로퍼티로 가질 수 있습니다. 이를 메서드라고 합니다. 이제 이를 어떻게 호출하는지 보겠습니다:
var car = {
brand: "Toyota",
model: "Corolla",
startEngine: function() {
console.log("Vroom! The " + this.brand + " " + this.model + " is starting.");
}
};
car.startEngine(); // 출력: Vroom! The Toyota Corolla is starting.
여기서 startEngine
은 car
객체의 메서드입니다. 이를 호출하기 위해 점 표기법을 사용합니다: car.startEngine()
.
자동 호출 함수
occasionally, we want a function to run as soon as it's defined. These are called self-invoking functions or Immediately Invoked Function Expressions (IIFE). They're like robots that start working as soon as they're built!
(function() {
console.log("I'm running immediately!");
})();
// 출력: I'm running immediately!
이 함수는 정의되자마자 즉시 호출됩니다. 함수 주위와 끝에 추가된 괄호가 자동 호출을 가능하게 합니다.
함수 호출의 다른 방법
JavaScript에서 함수를 호출하는 몇 가지 다른 방법도 있습니다. 이를 표로 정리해보겠습니다:
방법 | 설명 | 예제 |
---|---|---|
call() |
주어진 this 값과 개별적으로 제공된 인자로 함수 호출 |
func.call(thisArg, arg1, arg2, ...) |
apply() |
call() 와 유사하지만, 인자는 배열로 전달됩니다 |
func.apply(thisArg, [arg1, arg2, ...]) |
bind() |
고정된 this 값을 가진 새로운 함수 생성 |
var boundFunc = func.bind(thisArg) |
이제 이를 실제로 보겠습니다:
var person = {
fullName: function(city, country) {
console.log(this.firstName + " " + this.lastName + " lives in " + city + ", " + country);
}
}
var john = {
firstName: "John",
lastName: "Doe"
}
// `call()` 사용
person.fullName.call(john, "New York", "USA");
// 출력: John Doe lives in New York, USA
// `apply()` 사용
person.fullName.apply(john, ["London", "UK"]);
// 출력: John Doe lives in London, UK
// `bind()` 사용
var johnInfo = person.fullName.bind(john);
johnInfo("Paris", "France");
// 출력: John Doe lives in Paris, France
이 예제에서 우리는 call()
, apply()
, bind()
를 사용하여 fullName
함수를 다른 this
값과 인자로 호출하고 있습니다.
이제 여러분은 JavaScript에서 함수를 호출하는 다양한 방법을 배웠습니다. 연습이 왕이라고 생각하세요! 이 개념을 실험해보지 마세요. 곧 경험 많은 프로그래머처럼 함수를 작성하고 호출할 수 있을 것입니다!
기쁜 코딩 되세요, 여러분의 함수가 항상 성공적으로 호출되기를 바랍니다! ??
Credits: Image by storyset