-
[객체] - 객체 다루기 (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를 가리키게 된다. // 객체 레퍼런스 // 객체 자체를 저장하는 것이 아니라, 객체가 위치한 주소를 저장하는 것
'JavaScript > 기본 1' 카테고리의 다른 글
[표준객체] - 전역객체와 래퍼객체(wrapper object) (0) 2022.02.06 [객체] - 객체 프로퍼티와 메소드 (0) 2022.02.05 [객체] - 프로토타입 (0) 2022.02.05 [객체] - 객체의 생성방법 (0) 2022.02.05 [객체] - 객체 기본 개념 (0) 2022.02.05 - 객체 프로퍼티의 삭제