Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

SYDev

[Node.js] 17. 객체 본문

대딩코딩/웹개발 스터디

[Node.js] 17. 객체

시데브 2023. 11. 23. 19:20
해당 게시물은 유튜브 생활코딩 "Node.js" 강의 영상을 참고했습니다.
(https://www.youtube.com/watch?v=3RS_A87IAPA&list=PLuHgQVnccGMA9QQX5wqj6ThK7t2tsGxjm&index=1)

 

 

객체의 형식

//배열 선언
var members = ['egoing', 'k8805', 'hoya'];
console.log(members[1]);

//배열 요소 접근
var i =0;
while(i < members.length) {
    console.log('array loop', members[i]);
    i++;
}

//객체 선언
var roles = {'programmer': 'egoing',
             'designer': 'k8805',
             'manager': 'hoya'

}
console.log(roles.designer)

//객체 요소 접근
for(var name in roles) {
    console.log('object => ', name, 'value =>', roles[name]);
}
k8805
array loop egoing
array loop k8805
array loop hoya
k8805
object =>  programmer value => egoing
object =>  designer value => k8805
object =>  manager value => hoya

 

 

값으로서의 함수

//자바 스크립트에서는 함수를 변수에 저장할 수 있다.
var f = function() {
    console.log(1 + 1);
    console.log(1 + 2);
}

//배열에 함수를 담을 수 있다.
var a = [f];
a[0]();

//객체에 함수를 담을 수 있다.
var o = {
    func:f
}
o.func();
2
3
2
3

 

>> 함수를 변수 형태로 저장하고, 배열과 객체에 저장할 수 있다.

 

 

데이터와 처리 방법을 담는 그릇으로서의 객체

var o = {
    v1: 'v1',
    v2: 'v2',
    f1: function f1() {
        console.log(this.v1);
    },
    f2: function f2() {
        console.log(this.v2);
    }
}

o.f1();
o.f2();
v1
v2

 

>> c++에서 객체의 멤버변수, 멤버함수, this 포인터 개념과 유사

 

 

객체를 이용한 템플링 기능 정리

//refactoring
var template = {
  HTML: function templateHTML(title, list, body, control) {
    return `
    <!doctype html>
    <html>
    <head>
      <title>WEB - ${title}</title>
      <meta charset="utf-8">
    </head>
    <body>
      <h1><a href="/">WEB2</a></h1>  
      ${list}
      ${control}
      ${body}
    </body>
    </html>
    `;
  }, list: function templateList(filelist) {
    var list = '<ol>';
    var i = 0;
    while(i < filelist.length) {
      list += `<li><a href="/?id=${filelist[i]}">${filelist[i]}</a></li>`;
      i++;
    }
    list += '</ol>';
  
    return list;
  }
}

>> templateList, templateHTML 함수를 객체 template의 멤버함수로 통합하여 정리

 

            var list = template.list(filelist);
            var html = template.HTML(title, list, 
              `<h2>${title}</h2>${description}`, 
              `<a href = "/create">create</a>`
            ); 
            response.writeHead(200);
            response.end(html);

>> 위와 같이 활용할 수 있음