프로토타입

이재영·2023년 4월 5일
0

HTML CSS JS

목록 보기
17/22

생성자 함수 안에서 메서드를 정의하고 사용

function Car(m,c,s) {
  this.model = m;
  this.color = c;
  this.speed = s;
}

let temp = new Car("마티즈","레드",150);
// battery 키 true 값 추가
temp.battery = true;
temp.speedUp = function () {
  this.speed += 30;
  return this.speed;
}

console.log(temp); //Car {model: '마티즈', color: '레드', speed: 150, battery: true, speedUp: ƒ}
temp.speedUp();
console.log(temp); //Car {model: '마티즈', color: '레드', speed: 180, battery: true, speedUp: ƒ}

프로토타입의 기본형식

객체명.prototype.메서드 = function(){

}

프로토타입은 생성자 외부에 별도의 메서드를 정의해서 사용가능

원형에 속한 모든 객체는 프로토타입으로 추가한 메소드를 사용할 수 있다.
  Car.prototype.speedup = function(){
        this.speed +=20;
        return this.speed;
  }
  
  Car.prototype.speedDown = function(){
        this.speed -=20;
        return this.speed;
  }

let temp = new Car("봉고","검정", 100);
  let temp2 = new Car("다마스","검정",100);
  console.log(temp.speedup()); // 120 
  console.log(temp2.speedDown()); //80
  String.prototype.replaceOf = function(){
    // replaceOf라는 함수는 없지만 위와 같이 내가 함수를 정의해서 사용할 수 있다.
    // 예를들어 정의되어있는 replace 함수는 첫번째 매개변수에 해당하는 첫번째 문자를 찾아 두번째 매개변수로 바꾼다. 
    //replaceOf 라는 함수를 내가 두번째 문자를 찾아 바꾸는 함수로 코딩하고 사용할 수 있다는것이다.
  }

  // 문자열의 원형은 String 이고
  console.log("가나다가".replace("가","나")); // 나나다가
profile
한걸음씩

0개의 댓글