안녕하세요, 코린이의 코딩 학습기 채니 입니다.
오늘은 객체의 기본적인 정의 및 형태에 대하여 포스팅 해보는 시간을 갖도록 하였습니다.
* 객체의 정의
프로그래밍을 하다보면 코드가 많아지며,
코드를 정리 정돈하기 위해 함수를 사용함수를 많아지면 함수와 연관 되어 있는 변수들이 많아지므로, 복잡도의 한계에 도달하게 됨.
기본적인 정의 : 이러한 한계 상황에서 서로 연관된 함수와 연관된 변수를 동일한 이름으로 그룹화하여 정리 정돈하기 위한 도구
이전 포스팅에서 작성한 코드 중 var alist ~ i = i +1 ; 까지의 코드가 if절과 else 절에 반복되는 것을 최소화하고 싶었습니다.
해당 부분은 함수를 통하여 반복 되는 코드를 아래와 같이 해결할 수 있었습니다.
setColor라는 함수를 이용하여 코드를 단순화시켜 주었습니다.
alist[i].style.color = color; --> color라는 매개변수 값을 줌으로써 ~ color의 값이 변경될 수 있도록 처리하였습니다.
여기서 또, 중복되는 target.style.color / target.style.backgroundColor 까지도 함수화 하여 코드를 단순화시켜주었습니다.
해당 부분들을 함수화 시키는 것은 무의미할 수도 있겠지만,
짧은 코드이지만 의미가 불명확하거나 시간이 지난 후 해당 코드가 어떤 뜻을 지녔는지 파악하기 어려울 때는 함수를 통해 로직의
이름을 부여하는 것도 좋은 방법이라고 보입니다.
(다만, 해당 부분들은 의미가 명확하긴 함)
※ 처음 만들었던 setColor 함수 (var alist ~ i = i +1 ;)의 이름을 LinksSetColor로 변경
: 수많은 코드들이 존재하였을 때 setColor라는 함수가 있었는지 없었는지 확인이 불가하므로,
이름이 충돌되지 않도록 Links~, Body~ 등으로 함수 이름 앞에 명확한 표현을 해주었습니다.
다만 해당 코드로 실행해보니 button click 하였을 때 입력된 코드 실행이 안 되는 오류가 발생되었습니다.
확인해보니, 하기와 같은 이유로 실행이 불가한 점을 발견할 수 있었습니다.
function BodySetColor(color){target.style.color= color; }
function BodySetBackgrouncolor(color){ target.style.backgroundColor=color;}
function 절의 target은 nightDayHandler 함수 내에 var 값으로 지정해준 target 이므로,
새로 만든 함수 (BodySetColor,BodySetBackgroundColor)의 target 은 document.querySelector('body')를 가리키지 못한다는 점이 확인되었습니다.
따라서 이와 같이 BodySetColor, BodySetBackgroundColor 함수의 target 값은
document.querySelector('body')로 지정해주어 발생된 오류를 해결해 주었습니다.
이와 같이 함수를 통하여 코드들의 중복을 최소화시킬 수 있지만, 객체를 이용해서 하기와 같이 정리해 볼 수 있겠습니다.
(서로 연관된 함수와 연관된 변수를 그룹화하여 정리 정돈하기 위한 도구라는 정의를 이용)
Body라는 객체의 속해 있는 setBackgroundColor, setColor 함수
Links라는 객체의 속해 있는 setColor 함수라는 점을 깨달을 수 있습니다.
여기서 알 수 있는 점!
document.querySelector의 형태를 보면
document는 객체 querySelector는 document라는 객체의 속해 있는 함수라는 점을 알 수 있게 되었으며,
※ 객체의 속해 있는 함수 (setBackgroundColor, setColor, querySelector 등)는 메소드(method)라고 부릅니다.
'JavaScript > JavaScript - 생활코딩' 카테고리의 다른 글
[JavaScirpt] 객체 활용하기 (0) | 2021.09.15 |
---|---|
[JavaScript] 객체 Create, Iterate, Property & Method (0) | 2021.09.15 |
[JavaScript] 함수의 활용 (0) | 2021.09.14 |
[JavaScript] 함수 Basic / 매개변수와 인자 / 리턴 (0) | 2021.09.14 |
[JavaScript] 배열과 반복문 활용하기 (0) | 2021.09.14 |