ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • js - 객체
    js 2020. 8. 17. 14:12

    자바스크립트는 원시 타입을 제외한 모든 값이 객체입니다. 객체는 자바스크립트에서 가장 중요한 데이터 타입입니다.

    객체는 객체 리터럴과 생성자로 생성할 수 있습니다.

     

    객체

    객체는 이름과 값을 한 쌍으로 묶은 데이터를 여러개 모은 것입니다. 즉 객체는 데이터 여러개를 하나로 모은 복합 데이터로 연관 배열 또는 사전이라고도 부릅니다.

     

    예를 들어 동물을 표현하는 객체를 생성해보겠습니다

    이름
    name "dog"
    leg 4

    객체에 포함된 데이터 하나(이름과 값의 한쌍)를 가리켜 객체의 프로퍼티 라고 부릅니다.

    name:"dog" 한쌍 -> 프로퍼티

    leg:4 한쌍 -> 프로퍼티

     

    프로퍼티에서 이름 부분을 프로퍼티 이름 또는 키 라고 부릅니다.

     

    자바스크립트에서 객체를 생성하는 방법은 두가지가 있습니다.

     

    하나는 객체 리터럴을 사용하는 방법이고 나머지 하나는 생성자라는 함수를 사용하는 방법입니다.

     

    1.객체 리터럴로 객체 생성하기

    var animal = {name:"dog" , leg:4};

    { } 중괄호 부분이 객체 리터럴이며 객체 리터럴을 변수 anumal에 대입하고 있습니다.

    프로퍼티 이름과 프로퍼티 값은 콜론(:)을 사용해서 구분하고 객체 리터럴 안에 있는 프로퍼티들은 쉼표(,)로 구분합니다.

     

    변수에 대입된 객체 안의 프로퍼티 값을 읽거나 쓸때는 마침표나 대괄호 연산자를 사용합니다.

    animal.name // -> dog
    animal["leg"] // -> 4

     

    프로퍼티 추가 삭제

    animal.value = 14; -> 추가 방법
    console.log(animal); // -> animal {name:"dog" ,leg:4 ,value:14} 
    
    delete animal.value; -> 삭제 방법
    console.log(animal); // -> anumal {name:"dog" ,leg:4}

     

    in연산자로 프로퍼티가 있는지 확인하기

    in연산자를 사용하면 객체에 특정 프로퍼티가 있는지 확인할 수 있습니다. 코드를 다음과 같이 작성하면 프로퍼티가 객체에 포함되었을 때는 true 를 반환하고 포함되지 않았을 때는 false를 반환합니다

     

    방법

    프로퍼티 이름을 뜻하는 문자열 in 객체명

     

    ex)

    var animal = {name: "dog" leg: 4};
    console.log("name" in animal); // -> true;
    console.log("value" in animal); // -> false;
    

     

    객체는 참조타입

    생성된 객체는 메모리의 영역을 차지하는 한 덩어리가 됩니다.

    객체 타입의 값을 변수에 대입하면 그 변수에는 객체의 참조가 저장됩니다.

    이때의 변수 상태를 가리켜 그 객체를 참조하고 있다 라고 합니다.

     

    2.생성자로 객체 생성하기

    function animal(name,leg){
    	this.name = name;
        this.leg = leg;
    }
    

     

    생성자로 객체를 생성할 때는 new연산자를 사용합니다.

    var animal = new animal("dog",4);

     

    생성자 사용 이유

    이름은 같지만 프로퍼티 값이 다른 객체를 여러개 생성할 때 사용

    var animal = new animal("cat",4);
    var animal = new animal("chicken",2);

    'js' 카테고리의 다른 글

    이벤트 처리기 등록하기  (0) 2020.08.17
    대화상자 표시하기  (0) 2020.08.17
    js -데이터 타입  (0) 2020.08.17
    js-변수  (0) 2020.08.17
    js개념잡기  (0) 2020.08.17
Designed by Tistory.