8.2. 프로그램언어 자바스크립트(JavaScript)에서의 객체 속성 접근

프로그램언어 자바스크립트(JavaScript)에서의 객체 리터럴 내에서 메소드 생성

자바스크립트에서 객체 리터럴 내에서 메소드를 생성하는 방법은 간단합니다. 객체 리터럴은 중괄호 {} 안에 키-값 쌍을 나열하여 객체를 생성하는 방식이며, 이때 메소드를 추가할 수도 있습니다.

예를 들어, 다음과 같이 객체 리터럴 내에서 메소드를 생성할 수 있습니다.


let myObject = {
    myMethod: function() {
        return "안녕하세요, 메소드입니다.";
    }
};// 메소드 호출
console.log(myObject.myMethod());

위 예제 코드에서는 myObject라는 객체를 생성하고, 그 안에 myMethod라는 메소드를 추가했습니다. 이 메소드는 단순히 “안녕하세요, 메소드입니다.”를 반환하는 기능을 가지고 있습니다. 메소드를 호출할 때에는 객체명 뒤에 점(.)을 찍고 메소드명을 적어주면 됩니다.

프로그램언어 자바스크립트(JavaScript)에서의 생성자 함수 안에서 메소드 생성

자바스크립트에서 생성자 함수 안에서 메소드를 생성하는 방법은 간단합니다. 생성자 함수를 사용하여 객체를 만들 때 해당 객체의 프로토타입에 메소드를 추가하면 됩니다.

아래는 예제 코드입니다.






프로그램언어 자바스크립트(JavaScript)에서의 프로토타입 객체에 메소드 추가

프로토타입 객체는 자바스크립트에서 객체 지향 프로그래밍을 구현하는데 중요한 역할을 합니다. 프로토타입 객체에 메소드를 추가하는 것은 해당 프로토타입을 상속하는 모든 객체가 해당 메소드를 사용할 수 있게 하는 것입니다.

프로토타입 객체에 메소드를 추가하는 방법은 간단합니다. 기존의 프로토타입 객체에 원하는 메소드를 추가하면 됩니다. 이렇게 추가된 메소드는 해당 프로토타입을 상속받는 모든 객체에서 사용할 수 있습니다.


// 예제코드
function Person(name) {
  this.name = name;
}// 프로토타입 객체에 메소드 추가
Person.prototype.sayHello = function() {
  return "Hello, my name is " + this.name;
};// 객체 생성
let person1 = new Person("Alice");
let person2 = new Person("Bob");// 메소드 호출
console.log(person1.sayHello()); // 출력: Hello, my name is Alice
console.log(person2.sayHello()); // 출력: Hello, my name is Bob

프로그램언어 자바스크립트(JavaScript)에서의 클래스 내에 메소드 추가

자바스크립트에서 클래스 내에 메소드를 추가하는 방법은 간단합니다. 클래스를 정의한 후에 클래스의 프로토타입(prototype)에 메소드를 추가하면 됩니다.

예를 들어, 아래와 같이 클래스를 정의하고 메소드를 추가할 수 있습니다.


<script>
// 클래스 정의
class Car {
  constructor(brand) {
    this.brand = brand;
  }  // 메소드 추가
  drive() {
    return 'Driving the ' + this.brand;
  }
}// 인스턴스 생성
let myCar = new Car('Toyota');
document.getElementById('demo').innerHTML = myCar.drive();
</script>

위 예제에서는 Car 클래스를 정의하고 drive 메소드를 추가하여 인스턴스를 생성하고 해당 메소드를 호출하는 예시를 보여줍니다. 이렇게 클래스 내에 메소드를 추가하여 객체 지향적인 프로그래밍을 할 수 있습니다.

프로그램언어 자바스크립트(JavaScript)에서의 `Object.defineProperty`를 사용한 메소드 생성

자바스크립트에서는 `Object.defineProperty` 메소드를 사용하여 객체에 새로운 속성을 정의하거나 이미 존재하는 속성을 수정할 수 있습니다.

예를 들어, 아래와 같이 `Object.defineProperty`를 사용하여 객체에 새로운 메소드를 추가할 수 있습니다.


// 객체 생성
let person = {
  firstName: 'John',
  lastName: 'Doe'
};// Object.defineProperty를 사용하여 fullName 메소드 추가
Object.defineProperty(person, 'fullName', {
  get: function() {
    return this.firstName + ' ' + this.lastName;
  }
});// fullName 메소드 호출
console.log(person.fullName); // 출력: John Doe

Leave a Comment