자바 스크립트에서 객체 생성시에
let obj = { name: "objName", key: "value" }
이런 식으로 직접 key, value를 대입해서 넣어주는 것.
let obj = new Object(); obj.name = "objName"; obj.key = "value";
이렇게 넣더라도 어차피 리터럴 객체형태로 들어간다.
- Object() 함수를 new 키워드와 함께 코드 작성해 객체 생성.
- 리터럴 객체를 대입해 객체 생성.
- function으로 클래스 비슷하게 생성해 생성자처럼 이용해 객체 생성
문제
var circle = new Circle(10); document.write(circle.getArea()); //반지름 10 넓이는 314.1516 입니다.
코드
function Circle(rad){ this.rad = rad; this.getArea = function(){ return `반지름 ${this.rad} 넓이는 ${this.rad*this.rad*Math.PI}입니다.`; } } var circle = new Circle(10); document.write(circle.getArea()); //반지름 10 넓이는 314.1516 입니다.
실행 결과
반지름 10 넓이는 314.1592653589793입니다.
문제
let 홍길동 = new Grade("홍길동",100,70,80); document.write(홍길동.getAvg()); // 홍길동의 평균운 76.797 입니다. document.write(홍길동.getGrade());// 홍길동의 성적운 미 입니다.
코드
function Grade(name, kor, eng, math){ this.name = name; this.kor = kor; this.eng = eng; this.math = math; this.getAvg = function() { let avg = (this.kor+this.math+this.eng)/3.0; return `${name}의 평균은 ${avg}입니다.<br>`; } this.getGrade = function(){ let avg = (this.kor+this.math+this.eng)/3.0; let grade = '가'; if(avg>=90){ grade = '수'; } else if(avg>=80){ grade = '우'; } else if(avg>=70){ grade = '미'; } else if(avg>=60){ grade = '양'; } else { grade = '가'; } return `${name}의 성적은 ${grade}입니다.<br>`; } } let 홍길동 = new Grade("홍길동",100,70,80); document.write(홍길동.getAvg()); // 홍길동의 평균운 76.797 입니다. document.write(홍길동.getGrade());// 홍길동의 성적운 미 입니다.
실행 결과
홍길동의 평균은 83.33333333333333입니다. 홍길동의 성적은 우입니다.
문제
설명 : 1부터 10까지 출력을 하되, 1초마다 증가된 숫자를 하나씩 찍고, 10초후 프로그램 완료를 찍을것
출력 예시
1 2 3 4 5 6 7 8 9 10 프로그램 완료
코드
let i =1; let writeFun = setTimeout(function write(){ document.write(`${i}<br>`); if(i >= 10){ document.write(`프로그램 완료`); return; } i++; setTimeout(write, 1000); }, 1000);
실행 결과
1 2 3 4 5 6 7 8 9 10 프로그램 완료
많은 도움이 되었습니다, 감사합니다.