inblog logo
|
LifeLog, DevLog
    TIL

    TIL 20251112

    KYJTHEYJ's avatar
    KYJTHEYJ
    Nov 12, 2025
    TIL 20251112
    • JS

      Prototype
      • Prototype에 대해서

        • 속성과 함수를 저장하는 특별한 공간

        • 이러한 공간을 활용하여 CRUD 구축 가능

      • Function 객체

        • Function 객체는 JS에서 모든 함수의 조상

        • 이 Function 또한 Object 를 상속 받고 있음, Object 는 JS의 최상위 객체

      • Prototype의 데이터 추가, 조회

        • 데이터의 추가 → 새 객체의 생성

          • Prototype 에 객체형 데이터 저장 {key : value}

            const animal = {
             sound: () => {
               console.log("소리 내기");
             }
            }
            
            // Object.create(데이터) 
            // -> 새 객체의 생성 = 프로토타입 명시적 설정
            cosnt dog = Object.create(aniaml);
            dog.sound(); // 소리 내기
          • Object.prototype.이름 = 속성 정의
            , 객체끼리의 기능 공유 , 프로토타입 공유

            // Object 는 모든 조상
            // 모든 것에 사용 가능해짐
            Object.prototype.sayHello = (value) => {
               console.log(`${value} 안녕`);
            }
            
            const person = {name: "yj"};
            person.sayHello(person.name); // yj 안녕
            
            // 위 방법은 너무 위험함
            // 필요한 객체끼리 기능을 공유하게 만들어야함
            const person = {name: "yj"};
            person.sayHello(person.name);
            
            class Person {
                constructor(name) {
                    this.name = name;
                }
            
                sayHello() {
                    console.log(`${this.name} 안녕`);
                }
            }
            
            const person2 = new Person("yj");
            person2.sayHello(); // yj 안녕
            
            // 프로토타입을 공유하는 방법
            const greeter = {
                sayHello() {
                    console.log(`${this.name} 안녕`);
                }
            };
            
            const person3 = Object.create(greeter);
            person3.name = "yj";
            
            person3.sayHello(); // yj 안녕
            
        • 조회

          • Object.getPrototypeOf() 사용

            Object.getPrototypeOf(sayHello); // Function.prototype
    Share article

    LifeLog, DevLog - https://github.com/KYJTHEYJ

    RSS·Powered by Inblog