Chanter01. 코딩일기
- 오늘은 오전에 함수를 했다.
- 예전에 배웠던 선언적 함수, 익명함수, 매개변수 함수, 리턴 값 함수와 더불어 객체생성자 함수와 프로토타입함수, 객체리터널함수를 배웠다.
- 객체 생성자 함수는 조금 어려운데 프로토 타입함수와 객체리터널 함수에 대해서 살짝 말해보자면 프로토 타입 함수는 편의를 위해서 객체안에 넣어 두었던 함수를 다시 밖으로 가져왔는데 원래 안에 있던 객체의 데이터들을 계속 사용할 수 있게 된 함수들이다. 그렇게 한 이유는 하나의 객체 안에 있으면 모든 함수가 다 실행되기 될 때 불필요한 리소스 낭비가 생기기 때문에 그 것을 방지해주기 위한 방편이다.
- 객체 리터널 함수는 위의 프로토타입 함수에서 나온 함수들을 묶어서 하나의 객체로 만들어 준 것이다. 이렇게 해주면 원하는 함수만 실행시킬 수 있고 또한 보기에도 편해지기 때문에 가독성도 좋아진다. 언뜻보면 2개의 객체로 보이지만 그 두개의 객체가 데이터를 공유(?) 하기 때문에 하나라고 볼 수도 있겠다.
function Func(num, name, word){
this.num = num;
this.name = name;
this.word = word;
this.result = function(){
document.write(this.num+ "." + this.name + "가" + this.word + "되었습니다.");
};
};
// 인스턴스 생성
const info1 = new Func(1, "함수", "실행");
const info2 = new Func(2, "자바스크립트", "실행");
const info3 = new Func(3, "리액트", "실행");
info1.result();
info2.result();
info3.result();
- 가장 기본이 되는 객체생성자 함수의 예제이다.
- 그 후에 즉시 실행 함수, 파라미터 함수, 아규먼트 함수, 재귀 함수, 콜백 함수등에 대해 배웠는데
- 가장 중요한 콜백 함수에 대해 설명해 보자면 매개변수 안에 매개값(?)으로 함수를 넣어준 것이라고 이해를 했다.
- 그래서 매개변수가 실행이될 때 자기 것도 실행하고 그 매개변수로 넣어준 함수도 순서에 따라 실행이 되는 것 같다.
function func(){
document.write("2.함수 실행");
}
function callback(str){
document.write("1. 함수 실행");
str();
}
callback(func);
- 콜백함수 예제입니당.
그렇게 오전이 끝났다. 오후에는 MySQL를 배웠다. table의 데이터를 추가하고 수정하고 삭제하는 방법에 대해서 배웠는데 기억이 잘 안난다... 내일 시험보는데 자기전에 한번 보고 자야겠다...
그리고 웹디자인 기능사 문제를 보면서 레이아웃 작업을 해주었다. 조금 어려웠지만 괜찮았다.
그리고 정보처리 기능사 필기문제 사이트를 만들었다. 내일까지 숙제라 열심히 했는데 하다보니 살짝 인형에 눈알 붙이는 단순반복의 느낌도 들어서(느낌이 아니라 진짜 단순반복이다..) 기분이 묘했다. 아무튼 끝냈다!!!
내일 시험인데... 화이팅!!