본문 바로가기
JavaScript/생활코딩

5/10 생활코딩

by SKim입니다 2020. 5. 9.

오늘의 진도:

 WEB2 - JavaScript

  객체 예고~객체 활용

 

1. 객체(object) 예고

객체는 함수라는 기반 위에서 존재하는 것이다.

객체의 다면적인 얼굴 중 딱 하나만 볼 것이다.

 

객체 또한 정리정돈의 수단이다.

서로 연관된 함수와 서로 연관된 변수를

같은 이름으로 그룹핑해서 잘 정리정돈하기 위한 도구이다.

 

night 버튼 코드에서 회색으로 표시한 두 부분이

파우더블루와 블루만 다르고 중복되는 것을 볼 수 있다.

 

해당 부분을 setColor라는 함수로 만들고

color라는 매개변수를 정한 후,

코드 안의 파우더블루를 color로 바꿨다.

 

그리고 원래 코드가 있던 자리로 가서

원래 코드를 지우고

setColor라는 함수를 쓰고

파우더블루와 블루를 각각 써준다.

→ 완성

 

target.style.color = 'white' 부분도 함수로 만들어보자.

이것도 setColor로 이름을 붙이면 문제가 생긴다.

위에 있던 setColor 함수가 이것으로 덮어쓰기되어버리기 때문이다.

 

따라서 충돌이 나지 않게 이름을 더 세분화시켜서

LinksSetColor와 BodySetColor로 해준다.

 

LinksSetColor와 BodySetColor 함수를 만들어주고,

밑에 원래 있던 코드를 지우고 대신 이 함수로 바꿔주었다.

 

※ 이렇게 하면 실행이 안 되는데,

target이라는 변수의 값이 아래 함수에서 지정되기 때문이다.

그러므로 아래 함수의 var target =  뒷부분을 복사해서

위의 함수의 target을 지우고 대신 붙여넣었다.

이번에는 배경화면 색깔을 지정하는 코드도

BodySetBackgroundColor라는 함수로 지정하고

target 변수 값을 붙여넣고

아래 함수에서 BodySetBackgroundColor를 사용하도록 바꿔보았다.

 

이 때, 서로 연관된 함수와

서로 연관된 변수들을 그룹핑해서

정리정돈하기 위한 수납상자로서 객체가 존재한다.

 

Body와 Links라는 객체를 만들어 보았다.

이 때 뒤에 점을 찍고, 점 뒤는 소문자로 바꾼다.

 

이렇게 객체는 컴퓨터 저장장치의 디렉토리 또는 폴더와 같은 역할을 한다.

 

또한 지금까지 우리가 사용했던

document.querySelector에서 document가 객체였다는 것을 알 수 있다.

 

그리고 객체에 속해있는 함수는 함수라고 하지 않고

메소드(method)라고 부른다.

 

지금 우리가 작성한 코드는 동작하지 않는 코드이다.

다다음시간에 진짜 객체로 만들어볼 것이다.

 

2. 객체

(1) 객체의 쓰기와 읽기

정보의 양이 많아졌을 때 서로 연관된 정보를 정리정돈하기 위한 도구

① 배열 - 순서에 따라서 정보를 정리정돈 [0, 1, 2..]

② 객체 - 순서 없이 정보를 저장. 대신 이름이 있다.

 

※ 객체란 이름(key)과 값(value)으로 구성된 프로퍼티(property)의 정렬되지 않은 집합.

 

1) 정보를 저장하는 방법

중괄호(object literal)를 쓴다. cf) 배열은 대괄호[]

"딱지(key)":"정보"

 

2) 정보를 가져오는 방법

document.write(변수이름.딱지(key))

※ 중간의 점은 object access operator라고 부른다.

 객체에 접근하는 오퍼레이터라는 뜻.

 

3) 정보를 추가하는 방법

변수이름.딱지(key) = "정보"

 

※ 딱지 이름에 빈칸을 추가하고 싶다면

. 대신에 []를 쓰고 ""하면 된다.

(2) 객체와 반복문

객체의 모든 데이터를 가져오는 방법 - 반복문 사용

검색어: javascript object iterate(순회하다, 반복적으로가져오다)

 

for는 coworkers라는 변수가 가리키는 객체에 있는 key 값들을 가져오는 반복문 (순서는 보장하지 않는다.)

cf) 배열에서는 key 대신 index라고 한다.

→ coworkers에 있는 key 값들 하나하나를 변수값으로 세팅해 준다

 

그렇다면 위와 같이 입력하면

key 자리에 programmer, designer, bookkeeper, data scientist가 차례로 들어가면서

정보들이 나올 것이다.

 

(3) 프로퍼티와 메소드

객체에는 데이터를 담을 수 있다.

문자, 배열, 숫자, 함수 등

 

※ 객체에 속해있는 함수는 함수라고 하지 않고
메소드(method)라고 부른다.

 

coworkers라는 객체에 메소드를 추가해보자. 

 

이렇게 하면 된다.

 

※ 아래 두 가지도 같은 것이다.

(2)에서 만들었던 코드를 넣었다.

 

실행시키면 이렇게 된다.

※ 밑에 showAll이 표시된 것은

showAll 자체도 coworkers에 소속된 데이터이기 때문이다.

이것을 없애기 위해서는 for문 안에서 if문으로  showAll을 제외한다는 코딩을 하면 되지만

지금 중요한 것은 아니다.

 

그런데 이것은 좋은 방법이 아니다.

∵  coworkers라는 이름이

여기에 박혀있기 때문에,

만약에 이 객체의 이름이 바뀐다면 데이터를 못 가져올 수 있다.

∴ 아래 표시된 coworkers를 this(이 함수가 소속된 객체를 가리키는 약속된 기호)로 바꾼다.

3. 객체 활용

위의 두 함수를 지우고 아래 화면처럼 만든다.

※ 아래 화면에서 } 뒤에 콤마가 있어야 작동한다.

 

위의 함수도 아래와 같이 바꾼다.

'JavaScript > 생활코딩' 카테고리의 다른 글

5/10(2) 생활코딩 - JavaScript 完  (0) 2020.05.11
5/9(2) 생활코딩  (0) 2020.05.09
5/9 생활코딩  (0) 2020.05.09
5/8(2) 생활코딩  (0) 2020.05.09
5/8 생활코딩 < JavaScript 시작 >  (0) 2020.05.08

댓글