본문 바로가기

일/javascript

js05_object

슬슬 자바느낌나,,,

 <script>
    /*
     객체란(배열 vs 객체)?

     객체란 속성과 메서드를 가지고 있는 참조자료형이다.
     객체{}는 키와 값을 한쌍으로 갖는 자료형이다.
     배열[]은 값만 가지는 객체이다.
   
   
    */
   console.log('배열 = ', typeof[]);
   console.log('객체 = ', typeof{});

   //객체
   let obj1 = {};
   let obj2 = new Object();

   let person = {
    name: '홍길동',
    age: 1000,
    speak: function() {console.log('말을 합니다');
  }
  };
  //class와 object의 차이점은 class는 데이터가 없고 object는 데이터가 있다.
  // {}, new Object

  class Person {
    name;
    age;
    speak(){}
   
    // constructor(){}
   
    constructor(name, age){
      this.name = name;
      this.age = age;

    }
  }

  let hong = new Person();
  let sonny = new Person('손흥민', 30);
  let 민재 = new Person('김민재', 25);


  console.log("객체({}) = ", 민재.name, 민재['age']);
  console.log("객체(new/기본) = ", hong.name, hong['age']);
  console.log("객체(new/매개) = ", sonny.name, sonny['age']);

  </script>
<script>
    //1. 객체의 선언과 속성 정의하기
    let student = {};
     

    // 1)속성추가
    student.sno = 10;
    student.name = "홍길동";
    student.gender = "남자";

    for(let key in student){
      document.write(`${key} = ${student[key]}<br>`)
    }
    // 2)객체 매서드 추가/재정의
    //a. 상속받은 매서드 재정의(toString())
    console.log(student.toString());
   
    student.toString = function(){
      return `학번 = ${student.sno}, 이름 = ${student.name}, 성별 = ${student.gender}`;
    };

    console.log(student.toString());

    // console.log(student.toString());
    //b. 객체 매서드 추가하기(잘 안씀)
    student.study = function(course) {
      return `${this.name}이(가) ${course}과목을 공부합니다`;
    }
     console.log(student.study('영어'));
     console.log(student.study('수학'));


     //3. 속성 및 메서드 삭제하기(잘 안씀)
     delete(student.name);
     delete(student.study);

     for(let key in student){
      document.write(`${key} = ${student[key]}<br>`)
     }

  </script>

' > javascript' 카테고리의 다른 글

js07_DOM  (0) 2023.06.01
js06_BOM  (0) 2023.05.31
js04_function  (0) 2023.05.31
js03_for  (0) 2023.05.31
js02_if  (0) 2023.05.31