JS의 기초적인 객체 생성 방식은 두 가지가 있다.
let common = new object();
let common = {
key: "value",
};
보통 아래 구문을 더 많이 사용하며 이렇게 생성된 객체의 값을 프로퍼티라 부른다.
key와 value를 보니 파이썬의 딕셔너리가 생각나기도 하는데, 이런 프로퍼티(Property)는 속성이라는 의미보단 실제 데이터(또는 메모리) 정도로 이해하는 것이 옳은 것 같다 .
간혹 Attribute와 Property가 헷갈릴 때가 있다면 아래 예시를 봐두면 좋을 것이다.
Color: "#fffffff";
색상을 지정할 수 있는 프로그램에서 아마 저러한 옵션을 본 적이 있을 것이다.
위에서 Color는 Attribute이며 "#fffffff"는 Property이다.
한마디로 Property는 사용자에 의해 변경될 수 있는 값을 말하고 Attribute는 변하지 않는 특성을 의미한다고 볼 수 있다.
이해를 위해 조금 다른 예시를 들어보자.
[C/C++] HANDLE 자료형에 대한 캐스팅 연산
가끔 실습을 하다 보면 여러 가지 문제로 프로그램이 실행되지 않거나 컴파일되지 않는 상황이 발생합니다. 또는, 올바르지 않은 캐스팅 연산으로 데이터가 읽히지 않는 경우도 있죠. 작성자와
small-pond.tistory.com
위 글에 나와있는 함수를 사용하면 여유 메모리를 만들 수 있는데 주로 여러 자식 윈도우가 있을 때, 각 윈도우가 자신의 상태를 기억해야 하는 경우에 사용되곤 한다.
함수가 하는 일은 비교적 간단하다.
두 번째 인자로 문자열 상수를 전달하면 이 문자열을 이용하여 여분 메모리 공간에 접근하고 값을 저장할 수 있도록 해준다.
쉽게 와닿지 않으니 간단한 예를 들어보자.
#include <windows.h>
int main()
{
INT_PTR ColorMemory;
SetProp(Window, "Color", (HANDLE)ColorMemory); // 연결
...
ColorMemory = (INT_PTR)GetProp(Wnd, "Color"); // 값 가져옴
...
ColorMemory = #fffffff; // 값 변경
...
RemoveProp(Wnd, TEXT("Color")); // 삭제
}
메인 선두에서 ColorMemory라는 변수를 하나 만들고 윈도우와 연결했다.
이때 "Color"는 Attribute에 빗댈 수 있고 ColorMemory는 Property에 빗댈 수 있다.
프로그래머(또는 사용자)는 ColorMemory의 값을 입력받거나 직접 수정하여 색상을 바꿀 수 있으며 이 값을 기억하는 윈도우는 그 색상을 보여줄 것이다.
이렇듯 Property는 동적으로 변경될 수 있는 값(데이터)을 말하고 Attribute는 문자열 상수 즉, 정적인 메모리 공간 자체로 볼 수 있을 것 같다.
'컴퓨터 > Frontend' 카테고리의 다른 글
[Javascript] 비동기 처리(1) (0) | 2023.03.17 |
---|---|
[Javascript] 내장 함수 (0) | 2023.03.16 |
[Javascript] 콜백함수 (0) | 2023.03.15 |
[Javascript] 호이스팅 (0) | 2023.03.15 |
[Javascript] 백틱과 템플릿 리터럴 (0) | 2023.03.15 |
댓글