ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [객체] - 객체 다루기 (this)
    JavaScript/기본 1 2022. 2. 5. 16:35
    this 키워드
    this가 사용된 자바스크립트 코드 영역을 포함하고 있는 객체
    this

    - 메소드 내부에서 사용된 this 키워드는 해당 메소드를 포함하고 있는 객체
    - 객체 내부에서 사용된 this키워드는 객체 그 자신을 가리킹다.
    - 변수가 아닌 키워드 => 임의로 가리키는 값을 바꿀 수 없다.

     

    • 객체 프로퍼티의 삭제
      • // 문법
        
        객체이름.프로퍼티이름
        // 또는
        객체이름["프로퍼티이름"]
        
         delete 객체이름.프로퍼티이름;
      • // 예제
        
        function Dog(color, name, age) {
            this.color = color;
            this.name = name;
            this.age = age;
        }
        
        var myDog = new Dog("흰색", "마루", 1);
        delete myDog.age;  // age프로퍼티 삭제
        // age프로퍼티 삭제되어 undefined 출력
        
        document.write("우리집 강아지의 나이는 " + myDog.age + "입니다.");
        
        // 우리집 강아지의 나이는 undefined입니다.
    • 객체 프로퍼티의 순회
      • 순회 방법1 : for ~ in 문 사용 => for ~ in문법 보기
      • 순회 방법2 : Object.keys( )
        • 해당 객체가 가진 고유 프로퍼티 중에서 열거할 수 있는 프로퍼티의 이름을 배열에 담아 반환
      • 순회 방법3 : Object.getOwnPropertyNames( )
        • 해당 객체가 가진 모든 고유 프로퍼티의 이름을 배열에 담아 반환
      • function Dog(color, name, age) {
            this.color = color;
            this.name = name;
            this.age = age;
        }
        
        var myDog = new Dog("흰색", "마루", 1);
        
        // color 프로퍼티의 enumerable 속성을 false로 설정함
        Object.defineProperty(myDog, 'color', {enumerable: false} );
        
        // 객체가 가진 고유 프로퍼티 중에서 열거할 수 있는 프로퍼티 이름을 배열에 담아 반환
        document.write(Object.keys(myDog) + "<br>");  // name, age
        
        // 객체가 가진 모든 고유 프로퍼티의 이름을 배열에 담아 반환
        document.write(Object.getOwnPropertyNames(myDog));  // color, name, age
        
        // defineProperty
        // ECMAScript5부터 추가된 객체에 프로퍼티를 추가해주는 메소드
        // 추가하는 프로퍼티의 속성까지도 설정할 수 있다.
    • 객체간의 비교
      • 별개의 두 객체는 프로퍼티의 값이 모두 같아도, 절대 같다고 할 수 없다.
      • // 예제
        
        function Dog(color, name, age) {
            this.color = color;
            this.name = name;
            this.age = age;
        }
        
        var myDog = new Dog("흰색", "마루", 1);
        var hisDog = new Dog("흰색", "마루", 1);  // 프로퍼티의 값이 모두 같은 객체 생성
        
        document.write((myDog == hisDog) + "<br>");   // false
        document.write((myDog === hisDog) + "<br>");  // false
        
        var herDog = hisDog;  // hisDog객체를 변수 herDog에 대입
        document.write((hisDog == herDog) + "<br>"); // true
        document.write((hisDog === herDog) + "<br>"); // true
        
        
        // 객체를 대입한 변수 herDog => 객체 레퍼런스(object reference)
        // herDog => hisDog를 가리키게 된다.
        
        // 객체 레퍼런스
        // 객체 자체를 저장하는 것이 아니라, 객체가 위치한 주소를 저장하는 것

     

Designed by Tistory.