속성과 프로퍼티는 언뜻보기에 비슷해보이지만, 다르다.
이에대한 차이점을 간단하게 살펴볼려한다.
속성 vs 프로퍼티
1. 속성- 속성은 프로퍼티에 매핑되어있고, live synchronization이 설정되어있다. (단, 항상 그런것은 아님)
ex) html 태그의 속성…id, class, value…
2. 프로퍼티
- HTML 코드를 기반으로 생성된 객체에 저장된 값
ex) const input = doucment.~ … input.id, input,className, input.value…
속성 설명에서 속성은 프로퍼티에 매핑되어있다는 것은 무슨 의미일까?
-> 속성이 변하면 프로퍼티도 변하고, 프로퍼티가 변하면 속성도 변한다는 뜻이다.(live sync)..하지만, 예외도 존재
예를들어보자면..
- id(속성):input.id(프로퍼티)
1:1 매핑관계이다 (live sync)
- class(속성):input.className(프로퍼티)
알수있듯이 이름이 다르다 (하지만 live sync)
- value:input.value
프로퍼티 값을 바꾼다고 속성이 변하지 않는다, 오직 속성 변화에 따라 프로퍼티 변화가 발생
(사진에는 짤렸지만, <input value="default text">가 기존의 value 속성 값이였음)
사진에서 볼수있듯이 input.value = "messi"를 통해 프로퍼티 값을 바꿨지만, 속성값에는 영향이 없다
*비교
class가 없던 요소에 input.className을 통해 새롭게 class를 할당하자 속성에도 반영되었다.
'OLD > Javascript' 카테고리의 다른 글
[Javascript] 자바스크립트 배열_01 (Iterable, 유사배열객체, 배열 메서드) (0) | 2023.02.18 |
---|---|
[Javascript] DOM (DOM 쿼리, DOM Traversing) + live or non-live nodelist (0) | 2023.02.17 |
[Javascript] 자바스크립트에서의 함수(함수 표현식, 익명함수, Rest 연산자...) (0) | 2023.02.14 |
[Javascript] 윈시 타입(Primitive Type) vs 참조 타입(Reference Type) (0) | 2023.02.12 |
[Javascript] var 키워드를 더 이상 사용하지 않는 이유(let, const 사용 권장) (0) | 2023.02.12 |