(2023/07/12) 공부 일지!

seumomo_TAEILKIM·2023년 7월 13일
0

공부일지

목록 보기
60/87

JavaScript

값 복사

  • 얕은 복사
    => 중첩된 객체는 복사되지 않는다.
  • 깊은 복사
    => 중첩된 객체까지도 복사된다.

Prototype

Prototype은 부모를 뜻한다.

Prototype 상속

  • [[Prototype]]객체null을 가리킨다.
  • 해당하는 property가 없으면 [[Prototype]]에서 찾는다.
    => Prototype 상속
  • 객체에는 하나의 [[Prototype]]만 존재할 수 있다.
    => 한 개의 객체만 상속받을 수 있다.
  • Prototypeproperty는 사용자가 설정할 수도 있다.
    => Object.prototype 또는 __proto__을 사용한다.

    __proto__

    • [[Prototype]]getter이자 setter이다.
    • 객체null만 값으로 올 수 있다.
Object.prototpye.nickname = 'tiger'
animal.__proto__.nickname = 'tiger'
/* [[Prototype]]에 nickname: 'tiger'라는 property를 추가한다. */

읽기 전용

Prototype은 읽기 전용이며, property추가 | 수정 | 삭제할 때는 객체에 직접 해야 한다.

setter | getter 함수

setter
=> property에 함수를 이용하여 값을 할당할 때에 set 함수를 사용한다.

set 함수이름() {}

getter
=> setter를 사용하여 할당한 값을 호출할 때에 get 함수를 사용한다.

get 함수이름() {return}
  • settergetter의 역할이 다르기 때문의 함수의 이름이 같아도 된다.
  • setget 함수는 열거할 수 없다.
  • 함수를 사용할 때에는 keyvalue를 할당하는 것처럼 사용한다.
animal.eat = '사료'  // set (animal 객체의 eat에 '사료'를 할당)
animal.eat  // get (animal 객체의 eat에 할당된 값을 호출) ['사료']

함수의 Prototype

new function () {}과 같은 생성자 함수는 객체를 반환한다.
=> 생성자 함수의 이름은 대문자로 시작하도록 한다.
=> 생성자 함수는 재사용하여 관련된 객체를 만들 때 사용한다.

화살표 함수는 onstructor 존재하지 않는다.


Class

생성자 함수의 역할을 대신할 수 있다.

class 클래스이름 {
prop = value;  // 기본 property 설정

constructor(생성자이름) {
}  // 생성자 메소드

method(...) {}  // 메소드

set something() {}  // setter 메소드
get something() {}  // getter 메소드

[Symbol.iterator]() {}  // computed property를 사용해 만드는 메소드
}
profile
어제의 나보다 1% 발전하기💪

0개의 댓글