class

Judo·2020년 12월 3일
1
post-custom-banner

new 키워드

생성자는 객체를 만들고 초기 상태를 세팅하는 역할


function Carnew를 이용해 생성할 경우 function Car는 생성자가 되고 객체가 리턴된다.

function 사용 시 prototype 이용하기

function Person(first, second) {
	this.first = first;
	this.second = second;
}

Person.prototype.sum = function () {
	return this.first + this.second;
}
---
<console>
let kim = new Person(10, 30);
kim.sum() // 40

위 코드에서 Person.prototype.sumPerson 원형 안에 sum을 만들어주는 것이다.
이후 kim.sum()으로 호출할 경우
1. kim 객체안에 sum()이 있는지 확인한다. 있으면 해당 sum()을 사용
2. 없다면 Person 원형안에 있는 sum()을 확인하여 사용


class 사용 시 prototype or method 이용

class Carnew를 이용해 생성할 경우 class안에 constructor가 실행되고 인스턴스가 만들어진다.
class안에 메소드는 function를 생략한다.

class Person {
  constructor(name, first, second) {
    this.name = name;
    this.first = first;
    this.second = second;
  }
}

Person.prototype.sum = function() { 
  return this.first + this.second;
}

class Person {
  constructor(name, first, second) {
    this.name = name;
    this.first = first;
    this.second = second;
}
  
sum() { 
  return this.first + this.second;
}
  
}

위 코드는 class을 이용한 경우다.
prototype을 이용할 수도 있고 두 번째 코드처럼 class안에 sum()을 넣어 메소드로 사용할 수도 있다.
첫 번째 코드와 두 번째 코드의 차이점은 class안에 포함 여부다.

profile
즐거운 코딩
post-custom-banner

0개의 댓글