ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [객체] - 객체의 생성방법
    JavaScript/기본 1 2022. 2. 5. 13:42
    1. 리터럴 표기(literal notation)를 이용한 방법
      • // 문법
        
        var 객체이름 = {
            프로퍼티1 이름: 프로퍼티1의 값,
            프로퍼티2 이름: 프로퍼티2의 값,
            
            ...
            
        };
      • // 예제
        
        var kitty = {
            name: "나비",
            family: "코리안 숏 헤어",
            age: 1,
            weight: 0.1
        };
        
        document.write("고양이 이름은 " + kitty.name + "이고, 종은 " + kitty.family + "입니다.");
        
        // 고양이 이름은 나비이고, 종은 코리안 숏 헤어입니다.
    2. 생성자 함수(constructor function)를 이용한 방법
      • new 연산자 사용하여 객체 생성하고 초기화할 수 있다. => 생성자(constructor)
      • 자바스크립트에서 제공하는 생성자를 사용할 수도 있고 (예제),
        사용자가 직접 객체 생성자 함수를 작성해서 사용할 수도 있다. (자바스크립트 프로토타입 참고)
      • // 예제
        
        var day = new Date();  // new 연산자를 사용하여 Date타입의 객체를 생성함
        
        document.write("올해는 " + day.getFullYear() + "년입니다.");
        
        // 올해는 2022년입니다.
    3. Object.create( )메소드를 이용한 방법
      • 지정된 프로토타입 객체와 프로퍼티를 가지고 새로운 객체를 만들어 준다.
      • 사용자가 프로토타입 객체를 직접 명시할 수 있어 유용하다.
      • // 문법
        
        Object.create(프로토타입객체, [, 새로운 객체의 프로퍼티1, 새로운 객체의 프로퍼티2, ...]);
        
        // 첫 번째 인수 : 프로토타입으로 사용할 객체 전달
        // 두 번째 인수 : 새로운 객체의 추가할 프로퍼티 정보 전달
      • // 예제
        
        var obj = Object.create(null, {  // null 프로토타입을 사용하여 새로운 객체를 만들고
            x: {value: 100, enumerable: true },  // x좌표를 나타내는 열거할 수 있는 프로퍼티
            y: {value: 200, enumerable: true }   // y좌표를 나타내는 열거할 수 있는 프로퍼티를 추가함
        });
        
        obj.x;  // x좌표 => 100
        obj.y;  // y좌표 => 200
        
        Object.getPrototypeOf(obj);  // 객체의 프로토타입을 반환해 줌 => null

    => 위 방법으로 생성되어 메모리에 대입된 객체를 인스턴스(instance)라 한다.

     

    인스턴스(instance)
    클래스를 new 명령문으로 메모리에 생성한 객체
    클래스를 복제하여 복제본(instance)에 내부적으로 다른 데이터 유지
    • 클래스가 하나의 (공통적인 특징, 형태..?의)"틀"이라고 하면
    • 인스턴스는 그 틀을 복사하여 내부적으로 다르게 설정할 수 있게 된다.
      • 각각의 인스턴스는 공통적인 클래스를 갖게 되지만
      • 그 안에 수치나 성질?을 다르게 사용할 수 있다.
    • [비유] => 자동차 공장
      • 기본적인 자동차의 설계도는 동일하지만 (클래스)
      • 자동차의 색깔, 내부에 각각의 옵션들이 다르게 구성될 수 있다.
    • // Java
      
      public class Print {
          public static void main(String[] args) {
              Print p1 = new Print();
              p1.delimiter = "----";
              p1.A();
              p1.A();
              p1.B();
              p1.B();
              
              Print p2 = new Print();
              p2.delimiter = "****";
              p2.A();
              p2.A();
              p2.B();
              p2.B();
          }
      }
      
      class Print {
          public String delimiter = "";
          
          public void A() {
               System.out.prinln(delimiter);
               System.out.println("A");
               System.out.println("A");
           }
           
           public void B() {
               System.out.println(delimiter);
               System.out.println("B");
               System.out.println("B");
           }
       }
       
       
      // 결과
      // ----
      // A
      // A
      // ----
      // A
      // A
      // ----
      // B
      // B
      // ----
      // B
      // B
      // ****
      // A
      // A
      // ****
      // A
      // A
      // ****
      // B
      // B
      // ****
      // B
      // B

     

    [Instance 참고 : https://opentutorials.org/course/4074/26989 ]

    'JavaScript > 기본 1' 카테고리의 다른 글

    [객체] - 객체 다루기 (this)  (0) 2022.02.05
    [객체] - 프로토타입  (0) 2022.02.05
    [객체] - 객체 기본 개념  (0) 2022.02.05
    [함수] - 미리 정의된 전역 함수  (0) 2022.01.22
    [함수] - 매개변수와 인수  (0) 2022.01.22
Designed by Tistory.