티스토리 뷰
객체
배열은 [대괄호로 감싸져 있음]
객체는 {중괄호로 감싸져 있음}
객체 선언 및 호출
중괄호{}를 사용하여 객체를 생성하고 속성에는 모든 자료형이 올 수 있음
객체는 키 값을 사용하여 속성 식별
product 객체 자체는 변경이 불가능하나,
안에 있는 속성은 변경이 가능하다. → const 라서!
≫ 배열과 같은 논리
안의 속성만 변경하는 것은 주소값을 건드리지 않는 것이라 가능
객체의 키 식별자 테스트
객체의 키는 모든 문자열 사용 가능
다만, 식별자로 사용할 수 없는 단어를 키로 사용한 경우 (ex. 띄어쓰기)
무조건 대괄호를 사용해야 객체 요소에 접근 가능
객체의 메소드 속성
:: 객체의 속성 중 함수 자료형인 속성을 메소드라고 함
≫ run은 객체 안에 있는 키로 속성이 함수 자료형(메소드)이다.
하지만....
+) this
객체 안의 속성을 불러올 때는 this를 사용해야 한다.
그런데 this를 쓰니 window 객체를 가리킴. (window가 최상위 객체)
≫ 현재, 화살표 함수에서 this를 가져오고 있는데
화살표 함수 안에는 this라는 함수가 없기 때문에
무조건 window 함수를 가져올 수밖에 없다.
▼ ES6가 아닌 ES5로 바꿔 사용하자!
run 함수는 subway 객체 내에 선언된 메소드(Method)
subway 객체의 속성으로 선언되었으며, 객체에서 run 메소드를 호출할 수 있다.
예를 들어, 위 코드에서 subway.run('복잡하다')와 같이 subway 객체의 run 메소드를 호출하면,
action 매개변수로 전달된 '복잡하다' 문자열과 line1, line2 속성값을 사용하여 문자열을 출력한다.
또한, this 키워드를 사용하여 객체 자체를 참조할 수 있다.
this는 현재 실행되는 컨텍스트의 객체를 참조한다.
따라서 console.log(this)는 subway 객체를 출력합니다.
객체와 반복문
≫ 객체는 .length를 할 수 없다. → undefined
★ 객체 속성 추가 및 제거
≫ student.name 자체로는 불러오는 거지만,
= '강건강'; 이렇게 값을 대입할 수 있다.
≫ ★ student 객체의 toString(함수 자료형/메소드) 키에 함수가 들어있기 때문에,
if문을 통해 'toString' 키를 제외시켜주지 않으면 뒤에 함수까지 키 : 값으로 출력이 된다.
★ 객체 배열
≫ students 배열 안에 push를 사용해 객체들을 다 넣음
그리고 객체 내 속성 마다 메소드 getSum() / getAvg()를 생성해줌.
≫ getSum()에는 'name'과 'getSum()', 'getAvg()' 키가 들어가면
제대로 된 sum을 구할 수 없기 때문에 if문을 사용해 제외해 준다.
'KH' 카테고리의 다른 글
230410 (jQuery) (0) | 2023.04.10 |
---|---|
230405 (JavaScript_4) (0) | 2023.04.05 |
230403 (JavaScript_2) (0) | 2023.04.03 |
230403 (JavaScript_1) (0) | 2023.04.03 |
230331 (CSS / 애니메이션) (0) | 2023.03.31 |