본문 바로가기

JavaScript

객체(object)~ 프로토타입(prototype)

객체(Object)

 

프로퍼티(property)

- 이름과 값으로 구성된 정렬되지 않은 집합

-프로퍼티는 함수도 저장할 수 있음(프로퍼티 메소드)

   const userid ={'no':1, 'name':'김사과', 'age':20, 'gender':'여자'};

 

객체를 생성하는 방법

1. 리터럴 표기법

const 객체명 = {
    프로퍼티명1: 값1,
    프로퍼티명2: 값2,
    ...
    //프로퍼티 함수
    프로퍼티명n: funtion(){
        프로퍼티 메소드가 호출되면 실행할 문장;
        ...
    }
   }

 

2.생성자를 이용

    funtion 생성자명(매개변수1, 매개변수2..){
        this.프로퍼티명1 = 값1;
        this.프로퍼티명2 = 값2;
        ...
        this.프로퍼티명n: funtion(){
            프로퍼티 메소드가 호출되면 실행할 문장;
            ...
        }
    }

 

const 객체명 = new 생성자명(값1, 값2 ..);

-new 연산자를 사용하여 객체를 생성하고 초기화 할 수 있음

-객체를 생성할 때 사용하는 함수를 생성자라고 한다.

-새롭게 생성되는 객체를 초기화하는 역할

-같은 형태의 객체를 여러개 생성할 때 유리

 

1 / 2 차이점

1.하나의 객체만 만들 때 -->리터럴 표기법

2. 여러개의 객체를 만들 때 -->생성자를 이용

 

3.클래스를 이용하기

-내부적으로 생성자가 만들어진다!

    const 클래스명 = class {
        constructor(매개변수1, 매개변수2 ..){
            this.프로퍼티명1 = 값1;
            this.프로퍼티명2 = 값2;
            ...
        }
        메소드명(매개변수1, 매개변수2 ..){
            메소드가 호출되면 실행할 문장;
            ...
        }
    }

    const 객체명1 = new 클래스명(값1, 값2 ..);
    const 객체명2 = new 클래스명(값1, 값2 ..);

-내부적으로 생성자를 이용한 객체 생성 방법과 동일하게 작동한다.

 

상속

-자바스크립트는 프로토타입 기반의 객체 지향 언어(클래스 기반의 객체 지향 언어와는 다름)

-현재 존재하고 있는 객체의 프로토타입을 사용하여 해당 객체를 복사하고 재사용하는 것.

 

✅프로토 타입(prototype)

-모든 객체는 프로토타입이라는 객체를 가지고 있음

-모든 객체는 프로토타입으로부터 프로퍼티와 프로퍼티 메소드를 상속받음

-모든 객체는 최소한 하나 이상의 다른 객체로부터 상속을 받으며 상속되는 정보를 제공하는 객체를 프로토타입이라고 함

 const dog = new Dog(); //Dog.prototype // 생성자가 prototype, Object.prototype  --> 두개를 가지고 생성자가 만들어짐??

 

'JavaScript' 카테고리의 다른 글

회원가입.js  (0) 2022.11.09
폼 객체??  (0) 2022.11.08
객체~ 폼  (0) 2022.11.08
객체정리  (0) 2022.11.07
정리  (0) 2022.11.07