프로토타입 함수
프로토타입(Prototype)의 사전적 의미는 "원형"입니다. 자바스크립트에서 "원형"은 객체 생성자 함수를 의미합니다. 프로토타입을 사용하여 등록한 함수는 원형 (객체 생성자 함수)에서 생성된 객체를 공유할 수 있습니다. 즉 여러개의 함수를 등록할 필요가 없습니다.
프로토타입 함수
function 함수명 (매개변수1, 매개변수2, .....){ this.속성명 = 새 값; }
함수명 prototype.함수명 = function(){ 자바스크립트 코드; }
let 참조변수 (인스턴스 네임) = new 함수명 ();
샘플 1
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());
//7. 함수가 실행되었습니다.
샘플 2
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.userHeight >= this.minWeight && this.userWeight < this.maxWeight ){
return "정상 몸무게입니다.";
} else if( this.userWeight < this.minWeight) {
return "정상 몸무게보다 미달입니다.";
} else{
return "정상 몸무게보다 초과입니다.";
}
}
let hwang = new CheckWeight("장아름","158","50");
document.write(hwang.getInfo());
document.write(hwang.getResult());
//이름:장아름, 키:158, 몸무게:50, 정상 몸무게입니다.
Last updated
Was this helpful?