내장객체를 생성할때는 이미 자바스크립트 엔진에 내장되어 있는 객체 생성자 함수를
사용해서 객체를 생성한다. 객체 생성자 함수의 이름의 첫글자는 대문자로 쓰는 것이 관례이다.
[기본형]
function 함수명(매개변수1, 매개변수2...){
this.속성명 = 새값;
this.함숨명 =function(){
자바스크립트코드;
}
}
1. let 참조변수 = new 함수명(); <-객체 생성자 함수 호출문
2. let 참조변수 = {속성은:새 값,
함수명:function(){...}
}
어떤 방법도 상관없지만 안전하게 let보다는 const로 사용해주는게 안전하게 보관 할 수 있다. 객체생성자는 무조건 첫글자를 대문자로 써주는 것이 좋다.
function CheckWeight(
name = "이름을 입력해주세요",
height = 0,
weight = 0
) {
//사용자의 이름을 this(객체)의 userNamae속성에 할당함.
this.userName = name; //사용자의 이름
this.userHight = height; //사용자의 키
this.userWeight = weight; //사용자의 체중
this.minWeight; //평균몸무게를 구하기 위한 오차범위 = 새로 추가해준 속성
this.maxWeight; //평균몸무게를 구하기 위한 오차범위 = 새로 추가해준 속성
//사용자의 정보를 단순 출력해주는 함수
this.getInfo = (() => {
let str = "";
str += "이름 : " + this.userName + ",";
str += "키 : " + this.userHight + ",";
str += "체중: " + this.userWeight + "</br>";
return str;
}).bind(this); //bind는 this가 정확히 누구인지 알려주는 역할을 함.
//체중을 구해주는 함수
this.getResult = function() {
// 평균체중의 오차범위
this.minWeight = (this.userHight - 100) * 0.9 - 5; //-5는 최소 오차범위이다. ;
this.minWeight = (this.maxHeight - 100) * 0.9 + 5; //-5는 최대 오차범위이다. ;
//평균체중보다 5키로가 적어도 true고 평균체중보다 5키로가 많아도 true이다 식
if (
this.userWeight >= this.minWeight &&
this.userWeight <= this.maxWeight
) {
return "정상몸무게입니다. ";
} else if (this.userWeight < this.minWeight) {
return "당신은 정상몸무게보다 미달입니다.";
} else {
return "정상 몸무게보다 초과입니다.";
}
};
}
let 김땡땡 = new CheckWeight("김땡땡", "175", "65");
console.log(김땡땡);

객체는 각각 다른 기계이다.
ex)빵틀을 만들어놀고 비슷한 모양을 생성할떄 사용하는 것이다.

객체를 더 추가해서 여러가지 응용으로 넣어줄 수 있다.

콘솔로그 했을 때 값이 잘 넘어간 걸 볼 수 있다.
하지만 함수는 들어가지 않았다 와이??
버튼 안 눌러서 출력이 안 된 것이다 !!
하지만
중괄호로 감싸져있는 걸 볼 수 있다.
이것은 객체가 나왔다고 알 수 있는 것이다.

사실 변수 이름 한글로 지어도 오류가 안 난다. 하지만 실무에선 그럴 일이 없기에 무조건 변수이름은 영어로 짓기로 약속!
-------------------------------------------
예제

함수는
console.log(박땡땡.getInfo());
console.log(박땡땡.getResult());
를 출력해줘야 나온다.
객체생성자 함수는 this를 입력받지 못 한다 그래서 function(){}이나 bind를 사용해서 읽을 수 있게 할 수 있다.