JavaScript

[JavaScript] 객체(Object)

개발자 마멋 2023. 11. 4. 20:27

객체란

코드가 많아지면 함수를 써서 정리하는데, 그 함수가 많아지면 객체를 활용해서 정리

 

예시 : document.querySelector

document ➝ 객체

querySelector ➝ Method

 

기본

        var coworkers = {
            "programmer" : "marmot",
            "designer" : "gooma"
        };
        document.write("programmer : "+ coworkers.programmer+"<br>");
        document.write("designer : "+ coworkers.designer+"<br>");

        coworkers.bookkeeper = 'ada';
        document.write("bookkeeper : "+ coworkers.bookkeeper+"<br>");
        
        /* 위 아래 같은 효과, 아래는 띄어쓰기가 필요해서 대괄호 사용*/

        coworkers["data scientist"] = 'chris';
        document.write("data scientist : "+ coworkers["data scientist"]+"<br>");

 

결과 : 

programmer : marmot

designer : gooma

bookkeeper : ada

data scientist : chris

 

위 코드에서 document는 Object, programmer, marmot 등은 Property

 

반복(Iterate)

        for (var key in coworkers) {
            /*document.write(key+'<br>') // programmer, designer, bookke... */
            /*document.write(coworkers[key]+'<br>') // marmot, gooma, ada, chris*/
            document.write(key + ' : ' + coworkers[key]+'<br>') // 위 두개 다 출력
        }

 

결과 : 

programmer : marmot

designer : gooma

bookkeeper : ada

data scientist : chris

 

document.write(key) 실행 시 programmer, designer, bookkeeper, data scientist 출력

document.write(coworkers[key]) 실행 시 marmot, gooma, ada, chris 출력

두 코드를 응용해서 위와 같이 처음 기분 부분에서 적용한 코드와 똑같은 결과가 나오게 함

 

활용

 

        function LinkssetColor(color){
        var alist = document.querySelectorAll('a');
        var i = 0;
        while(i < alist.length) {
        alist[i].style.color = color;
        i = i + 1;
        }
    }
        function BodysetColor(color){
            document.querySelector('body').style.color=color;
        }
        
        function BodysetBackgroundColor(color) {
            document.querySelector('body').style.backgroundColor =color;
        }
        function nightdayhandler (self){
            var target = document.querySelector('body')
        if (self.value === 'night') { 
        BodysetBackgroundColor('black');
        BodysetColor('white');
        self.value='day';

        LinkssetColor('powderblue');
        }

        else {
        BodysetBackgroundColor('white');
        BodysetColor('black');
        self.value='night';

        LinkssetColor('blue');
        }
            
                }

 

위 코드의 LinkssetColor, BodysetColor 등을 하나의 객체로 묶어서 아래처럼 하나의 객체로 묶어서 정리 가능

 

        var Links = {
            setColor: function (color){
        var alist = document.querySelectorAll('a');
        var i = 0;
        while(i < alist.length) {
        alist[i].style.color = color;
        i = i + 1;
        }
            }
        }
        var Body = {
            setColor:function (color) {
                document.querySelector('body').style.color=color;
            },
            setBackgroundColor:function (color) {
                document.querySelector('body').style.backgroundColor =color;
            }
        }


        function nightdayhandler (self){
            var target = document.querySelector('body')
        if (self.value === 'night') { 
        Body.setBackgroundColor('black');
        Body.setColor('white');
        self.value='day';

        Links.setColor('powderblue');
        }

        else {
        Body.setBackgroundColor('white');
        Body.setColor('black');
        self.value='night';

        Links.setColor('blue');
        }
            
                }

 

파일로 정리하기

<head>
<script src="colors.js"></script>
</head>

 

위에서 객체를 이용하여 정리한 코드를 문서들에 적용할때 수많은 파일이 있다면 colors.js(예시) 같이 자바스크립트 파일을 만들어서 그안에코드를 정리하고 위 코드로 연결시켜준다면 유지보수에 도움이 됨.

'JavaScript' 카테고리의 다른 글

[JavaScript] Booleans  (0) 2023.11.07
[JavaScript] Variables(변수 : var, let, const)  (0) 2023.11.05
[JavaScript] 함수(Function)  (0) 2023.11.03
JavaScript 배열, 반복문의 활용  (1) 2023.11.02
let textNodes = document.querySelectorAll("div.tt_article_useless_p_margin.contents_style > *:not(figure):not(pre)"); textNodes.forEach(function(a) { a.innerHTML = a.innerHTML.replace(/`(.*?)`/g, '$1'); });