13. 자바스크립트 객체
: 프로퍼티와 메서드로 이루어짐 
프로퍼티(변수의 일종) : 프로퍼티(키)와 프로퍼티값(value)로 구성
프로퍼티키는 일반적으로 문자로 구성하고 값은 원하는 값
메서드 : 객체 안에 있는 함수를 가르킴

   
HTML 태그 속성(attribute)과 속성값을 가진다
CSS  프로퍼티와 프로퍼티값
JavaScript  프로퍼티와 프로퍼티값, 그리고 메서드로 이루어짐




1) 사용자 객체 
JS 객체 생성 방법
#1. 객체 리터럴 방식 : 객체 구분 기호 : {}
변수 = {
프로퍼티명 : 값, 
프로퍼티명 : 값,.....
};
객체 자체의 주소값이 바뀌어야만 let으로 변수에 담고
객체 자체의 주소값은 안바뀌고 안에만 바꾼다면 const 변수에 주로 담음

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <script>  //13 객체 리터럴 방식
            const user= {name :"pika",age : 10}; // , 을 통해 객체구나 생각!
            console.log(user);
            console.log(user.age);
            console.log(user.name);
       
            console.log(user.test); // 없는 프로퍼티 읽으려하면 undefined 리턴함.
       
       
            // 빈 객체 만들기
            const obj = {};
    //   자바로 치자면 class test {}
    //   obj = new test {}
    
            // 프로퍼티 추가, 삭제  (자바에서 hashmap이랑 비슷함)
       obj.addr = "서울시 서초구";
       console.log(obj);
       delete obj.addr;
       console.log(obj);
       
            // in 연산자로 프로퍼티 있는지 확인
       console.log("name" in user);  //true 출력
       console.log("test" in user);  // false 출력
       console.log("toString" in user);  // true 출력
       
    </script>
    
</body>
</html>

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    
    <script>
            // 13. 리터럴 객체  (익명함수)
                let person = {
                    name : "pika",
                    age : 10,
                    getData : function(){
                        console.log("hello method");
                    }, 
                    test : {a: 10, b : "haha", c : [1,2,3,4], d : function(abc){}}
                };
    
            console.log(person);
            console.log(person.age); //변수 출력
            person.getData(); // 메서드 호출
            
        console.log(person.test.a);
        // 3 출력
        console.log(person.test.c[2]);
        console.log(person.test.d(10));
        
            // 프로퍼티 (변수) 추가 : 없는 이름의 프로퍼티명에 값대입
        person.height = 170;
            // 메서드 추가 : 없는 이름의 프로퍼티명에 익명함수 대입
        person.getSum = function(a,b){
            return a + b;
        };
        console.log(person);
        console.log(person.height);
        console.log(person.getSum(10,20));
        
    </script>  
</body>
</html>

 


#2. new Object()로 생성하는 방식
const 변수 = new Object();
변수.age = 10;
변수.name = "hello";

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>    // 13- 2 new object로 객체생성
                    const person = new Object();
                    person.name = "pikapika";
                    person.age = 100;
                    person.getNum = function(){
                        console.log("getNum 메서드호출");
                        return "haha";
                    };
                
                    console.log(person);
                    let result = person.getNum();
                    console.log(result);
 
    </script>
</body>
</html>



#3. 생성자 함수로 생성하는 방식
# 생성자 정의
fuction 생성자명(){ // 생성자명은 첫글자 대문자
....
}
# 객체 생성해서 사용
const 변수 = new 생성자명();
변수.~~~~~
#4. ES6와 클래스

class 클래스명 { // 클래스명 첫글자 대문자
constructor(){// 생성자
....
}
}

const 변수 = new 클래스명();

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
       <script> // 13 -3 
          /*  function Person(name, age){  //대문자
                console.log("Person 객체생성");
                this.name = name;
                this.age = age;
            }
        
            const pika = new Person("pika", 10);
           console.log(pika);
           
          */
                // 13 -4
            class Person{
                constructor(name){
                    console.log("hello");
                    this.name = name;
                }
            }
           class Student extends Person{
               constructor(name, age){
                   super(name);
                   this.age = age;
               }
           }
           
           //const p = new Person("pika");
           // console.log(p);
           
            const stu = new Student("kobugi", 100);
            console.log(stu);
    </script>
    
</body>
</html>

 

+ Recent posts