프로토타입 함수
프로토타입(Prototype)의 사전적 의미는 "원형'입니다. 자바스크립트에서 "원형"은 객체 생성자 함수를 의미합니다. 프로토타입을 사용하여 등록한 함수는 원형(객체 생성자 함수)에서 생성된 객체를 공유할 수 있습니다. 즉 여러개의 함수를 등록할 필요가 없습니다.
프로토타입 함수
function 함수명 ( 매개변수1, 매개변수 2,........){ this 속성명 = 새값; } 함수명 prototype : 함수명 = function(){ 자바스크립트 코드; }
let 참조 변수(인스턴스 네임) = new 함수명();
function CheckWeight (name, height, weight){
this.userName = name;
this.userHeight = height;
this.userWeight = weight;
this.minWeight;
this.maxWeight;
}
CheckWeight.prototype.getInfo = function(){
let str = "";
str += "이름: " + this.userName + ", ";
str += "키: " + this.userHeight + ", ";
str += "몸무게: " + this.userWeight + ", ";
return str;
}
CheckWeight.prototype.getResult = function(){
this.minWeight = (this.userHeight - 100) * 0.9 - 5;
this.maxWeight = (this.userHeight - 100) * 0.9 + 5;
if(this.userWeight >= this.minWeight && this.userWeight <= this.maxWeight){
return "정상몸무게입니다.";
}else if( this. userWeight < this.minWeight){
return "정상 몸무게보다 미달입니다.";
}else {
return "정상 몸무게보다 초과입니다.";
}
}
let kim = new CheckWeight("소라","170", "50");
document.write(kim.getInfo());
document.write(kim.getResult());
복습예제
//프로토타입 함수(함수가 실행되었습니다.를 복잡하게 출력쓰)
function func7(num1, str1, str2){
this.youNum = num1;
this.youStr1 = str1;
this.youStr2 = str2;
}
func7.prototype.result = function(){
let str = "";
str += this.youNum + ". ";
str += this.youStr1 + "가 ";
str += this.youStr2 + "되었습니다.";
return str;
}
let javas = new func7(7, "함수", "실행");
document.write(javas.result());
//프로토타입 메서드
function You4(name, job){
this.name = name;
this.job = job;
}
You4.prototype.study = function(){
document.write("내 이름은" + this.name + "이며","직업은" + this.job + "입니다.<br>");
}
let char3 = new You4("웹쓰", "웹 퍼블리셔");
let char4 = new You4("웹스토리보이", "프론트앤드 개발자");
char3.study();
char4.study();
Last updated
Was this helpful?