안녕하세요 오늘은 자바스크립트에서 함수와 객체를 사용하는 법을 알아보겠습니다.
1. 함수의 정의와 호출 방법:
함수는 재사용 가능한 코드 블록입니다. 함수를 정의할 때는 function 키워드를 사용합니다.
함수 정의는 다음과 같은 구조를 가집니다:
function functionName(parameter1, parameter2) {
// 함수 내부에서 수행될 코드
}
functionName은 함수의 이름이며, 필요에 따라 생략할 수도 있습니다.
parameter1, parameter2 등은 함수에 전달되는 매개변수(Parameter)입니다. 매개변수는 선택적으로 지정할 수 있습니다.
2. 함수 호출:
함수를 호출하기 위해서는 함수 이름을 사용하고 괄호 안에 필요한 인자(Argument)를 전달합니다.
함수 호출은 다음과 같은 구조를 가집니다.
functionName(argument1, argument2);
인자(argument)는 매개변수(parameter)로 전달되어 함수 내부에서 사용됩니다.
3.매개변수와 반환값 처리 방법:
매개변수(Parameter): 함수가 호출될 때 전달된 값을 받아들이기 위해 사용됩니다.
매개변수는 함수 내부에서 변수처럼 활용되며, 해당 값에 접근하여 원하는 작업을 수행할 수 있습니다.
function add(a, b) {
return a + b;
}
위 예시에서 a, b가 매개변수이며, 이들은 호출 시 전달된 인자(argument) 값을 받아들입니다.
반환값(Return Value): 함수가 실행을 완료하고 결과를 호출한 곳으로 반환하는 값입니다.
return 키워드를 사용하여 반환값을 지정할 수 있습니다.
4.객체의 생성과 속성 접근 방법:
객체(Object)는 여러 속성(Property)을 그룹화한 데이터 구조입니다. 객체는 중괄호 {}를 사용하여 생성됩니다.
객체의 속성에 접근하기 위해서는 점(.) 또는 대괄호([]) 표기법을 사용합니다.
객체의 속성 값을 변경하거나 새로운 속성을 추가하기 위해서도 동일한 점 또는 대괄호 표기법을 사용합니다.
const person = {
name: 'John',
age: 30,
};
console.log(person.name); // "John"
console.log(person['age']); // 30
person.age = 35; // 속성 값 변경
person.gender = 'Male'; // 새로운 속성 추가
위 예시에서 person은 객체이며, name과 age는 해당 객체의 속성입니다.
위 예시에서 .name은 person 객체의 이름 속성에 접근하고, ['age']는 대괄호 표기법으로 나이 속성에 접근합니다.
위 예시에서 person 객체의 age 속성 값을 변경하고, gender 속성을 추가합니다.
(응용) 함수 사용 방법 - 익명 함수와 콜백 함수:
// 익명 함수 정의 및 호출
const greeting = function(name) {
console.log(`Hello, ${name}!`);
};
greeting('John'); // "Hello, John!" 출력
// 콜백 함수로 활용
function processUserInput(callback) {
const name = prompt('Please enter your name:');
callback(name);
}
processUserInput(greeting); // 입력된 이름을 인자로 받아 인사하는 콜백 함수 호출
위의 예시에서는 함수안에 함수가 들어간 상태로 이런 것을 콜백함수라고 부르며 자바스크립트에서 자주 쓰입니다.
addEventListener 같은 함수가 대표적인 콜백함수이죠
(응용) 객체 사용 방법 - 메서드 추가:
const calculator = {
add: function(a, b) {
return a + b;
},
subtract: function(a, b) {
return a - b;
}
};
console.log(calculator.add(5, 3)); // 8 출력
console.log(calculator.subtract(10, 4)); // 6 출력
객체 안에는 객체가 있을수도 있고 함수가 있을 수도 있습니다.
(응용) 객체 생성자와 프로토타입 활용:
// 객체 생성자 함수 정의
function Person(name, age) {
this.name = name;
this.age = age;
}
// 프로토타입에 메서드 추가
Person.prototype.introduce = function() {
console.log(`My name is ${this.name} and I'm ${this.age} years old.`);
};
// 객체 생성과 메서드 호출
const person1 = new Person('John', 30);
person1.introduce(); // "My name is John and I'm 30 years old." 출력
const person2 = new Person('Jane', 25);
person2.introduce(); // "My name is Jane and I'm 25 years old." 출력
이렇게도 가능합니다. 마치 자바 같네요
(응용) 객체 상속 - 프로토타입 체인:
// 부모 객체 생성자 함수 정의
function Animal(name) {
this.name = name;
}
// 부모 객체의 메서드 추가
Animal.prototype.speak = function() {
console.log(`${this.name} makes a sound.`);
};
// 자식 객체 생성자 함수 정의 및 상속 설정
function Dog(name) {
Animal.call(this, name);
}
Dog.prototype = Object.create(Animal.prototype); // 프로토타입 체인 설정
Dog.prototype.constructor = Dog; // 생성자 지정
// 자식 객체에 추가된 메서드
Dog.prototype.bark = function() {
console.log(`${this.name} barks.`);
};
// 객체 생성과 메서드 호출
const dog1 = new Dog('Buddy');
dog1.speak(); // "Buddy makes a sound." 출력 (부모 메서드 호출)
dog1.bark(); // "Buddy barks." 출력 (자식 메서드 호출)
기본적인 상속도 자바스크립트로 가능합니다.
다음에는 DOM 요소를 선택하고 조작하여 웹브라우저에서 자바스크립트가 가지는 강력함을 살펴보겠습니다.
감사합니다.
'자바스크립트' 카테고리의 다른 글
자바스크립트: 다양한 이벤트 처리 (0) | 2023.09.13 |
---|---|
자바스크립트: 웹 페이지 개발을 위한 DOM 조작 (0) | 2023.09.13 |
자바스크립트 기초 문법: 변수, 데이터 타입, 연산자, 조건문 (0) | 2023.09.13 |
자바스크립트: 웹 개발의 핵심 언어 (0) | 2023.09.13 |
자바스크립트로 간단한 문제 풀기(1) (0) | 2023.02.20 |
댓글