[JS]객체

Hyoyoung Kim·2022년 8월 10일
0

React TIL

목록 보기
4/40

1. 객체 생성

-> 객체 생성자 이용


let person = new Object()
//new키워드가 붙으면 object라는 객체를 생성한다는 뜻

-> 객체 리터럴 방식(중괄호 사용)


let person = {
	key : "value", 
  // 키와 value가 쌍으로 저장되는 데이터르 프로퍼티(객체 프로퍼티)라고 부른다.
  	key1 : 123,
  	key2: true,
  	key3: undefined,
  	key4:[1, 2],
  	key5: function (){
    	console.log("안녕")
    } // 객체의 프로퍼티로 함수를 담는 것(객체안의 함수)을 '메서드'라고 부른다.
  // 메서드가 아닌 프로퍼티는 '멤버'라고 부른다.
  
  //프로퍼티의 value에는 어떤 자료형이 위치해도 괜찮다.
  //키는 문자열로 적어줘야한다. ("")<-이건 안넣어줘도 된다. 
  //키의 이름은 겹치지 않게 해주는 것이 좋다.
};

// *value를 부르기 위해서는*

console.log(person["key3"]);//가로 표기법
console.log(person.key);//점 표기법

// *함수 호출법1*
person.key5()
person["say"]()

//*함수 호출법2*
console.log(getPropertyValue("key2"));
//getPropertyValue에 key2를 전달했다. 

function getPropertyValue(gg){
  return person[gg];
}// 호이스팅이 되는 함수 선언식
//getPeopertyValue는 gg값을 key2라는 문자열을 받고
//person에 key2의 value인 true를 꺼내온다.

2. 객체 안에 새로운 객체 추가 & 수정 & 삭제


let person = {
  name : "김친구",
  age: 25
};

//*추가*
person.location="한국"// 프로퍼티 추가
person["gender"] = "남성"; // 프로퍼티 추가

//*수정*
person.name = "박추추" // 프로퍼티 수정
person["age"] = 40 // 포로퍼티 수정
// 프로퍼티를 수정하는 행위는 person이라는 상수 자체를 수정해주는 것이 아닌
// person이라는 객체 안의 프로퍼티를 수정해주는 것이다. 

person = {
  age:20
};
// 이렇게 추가해주면 상수인 person자체에 대입연산을 하게되면 상수 자체를 수정해주는 것이다.

//*삭제*
delete person.age; // 프로퍼티 삭제
delete person["name"]; //프로퍼티 삭제
//이런 삭제 방법은 실제 person객체의 프로퍼티를 삭제해주진 않는다. 
//아예 삭제를 원한다면 아래 코드로 하면 된다. 
person.name = null;

console.log(person)

3. this


const person = {
  name : "김친구",
  age: 25,
  say: function() {
    console.log(`안녕 나는 ${this.name}`)
    // 여기서의 this는 자기자신 객체이다. this.name은 person.name과 같은 개념이다. 
  }
}

4. 특정 프로퍼티가 객체 안에 존재하는지 알아보는 것


const person = {
  name : "김친구",
  age: 25,
  say: function() {
    console.log(`안녕 나는 ${this.name}`)
  }
}

console.log(`name : ${"name" in person}`)
// 백틱 사용
//${"name" in person}은 person이라는 객체 안에 name이라는 프로퍼티가 있냐는 코드이다.
// 위 코드는 콘솔에 'name : true'로 표기됨

console.log(`gender : ${"gender" in person}`);
// 콘솔에 'gender : false'로 출력됨

0개의 댓글