javascript class
업무 자동화를 위한 코드를 짜다 보니, request를 위한 json을 보다 편하게 만들 수 있는 방법이 없을까?라는 생각이 들었다. 그래서 내가 생각해 낸 것은 javascript의 new 연산자와 constructor를 이용해 class를 뚝딱 만든 뒤, json화 하는 것이다.
Class
- 클래스는 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀
- 객체를 정의하기 위한 상태(멤버 변수)와 메서드(함수)로 구성된다.
- new 연산자를 사용할 수 있다.
- 생성자를 사용할 수 있다.
코드 예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Class Customer {
constructor(name, age, job, email) {
this.name = name;
this.age = age;
this.job = job;
this.email = email;
}
method1() {
}
...
}
let cust1 = new Customer('Midori', 31, 'painter', 'lvse@gmail.com');
이렇게 만든 cust1는 출력했을 때 아래와 같이 나온다.
1
2
3
4
5
6
cust1 {
name: 'Midori',
age: 31,
job: 'painter',
email: 'lvse@gmail.com'
}
이것을 Object와 같은 형태로 만들어서 배열에 넣고 싶었다.
그리하여, JSON.parse()
와 JSON.stringify
를 사용하여 object처럼 보이도록 만들어 보았다.
1
JSON.parse(JSON.stringify(cust1))
이렇게 하면 출력했을 때 json같은 형태로 나온다.
1
2
3
4
5
6
{
name: 'Midori',
age: 31,
job: 'painter',
email: 'lvse@gmail.com'
}
그러니까 계속해서 새로운 object를 만들고 싶다면 아래와 같이 사용할 수 있는 것이다.
1
JSON.parse(JSON.stringify(new Customer('Midori', 31, 'painter', 'lvse@gmail.com')))
엄청난 발견은 아니지만.. 어쨌든 액셀 메크로를 사용해야 했던 문제가 이렇게 해결되었다..