JavaScript/Basic

객체(Obejct) & 메서드(Method)

yunajoe 2022. 9. 15. 08:35

객체란(Obejct)?!

- 자바스크립트의 객체는 키(key)과 값(value)으로 구성된 프로퍼티(Property)들의 집합

 

// 왼쪽이 객체의 property name(key), 오른쪽이 객체의 property value 
{   
  '1st': null,
  '2nd' : 연아,  
  friend: {name: 'crew', age: 3}, 
  'my-name': 'yunajoe'
}


Property Name 의 자료형은 문자열이지만, 반드시 따옴표로 감싸줄 필요는 없다. 
다만  아래의 사항들을 어길시에는 따옴표로 감싸줘야 한다. 

1. 첫번째 글자는 반드시 문자, 밑줄, 달러기로 시작해야 한다  
2. 띄어쓰기 금지  
3. 하이픈 금지 

// 데이터에 접근해보자 

let profile = {
    name: "yuna", 
    'born Year': 2018, 
    personality : true, 
    weankness: null, 
    favoritefood :{
        coffee: "americano",
        'ordered pizza' : "peperroni" 
    } 
};

console.log(profile.bornYear); // 2018
// 만약에 bornYear ==> born Year 됬다면?!(즉, 띄어쓰기를 했다면?!)
// profile.born Year 라고 하면은 born과 Year를 다른 property 로 인식한다. 
// 따라서 대괄호로 감싸주자 

console.log(profile['born Year']); // 2018 
console.log(profile['born' + ' Year']); // 2018  
let propertyName = "name";
console.log(profile[propertyName]);  // yuna
// 객체 property안에 있는property에 접근해보자 

console.log(profile.favoritefood.coffee); // americano
console.log(profile.favoritefood['ordered pizza']); // peperroni 

// 존재하지 않는 properety 
console.log(profile.favoritefood['ordered drink']); // undefiend

 

// 실습 -- 객체만들기

let myVoca = {
    function:'함수', 
    variable: '변수',
    constant: '상수',
    local: '지역의',
    global: '전반적인' 
}; 

console.log(myVoca);
console.log(myVoca.local);
console.log(myVoca.constant);
console.log(myVoca.function);
// 실습2 - 수정, 삭제 해보기 

let myVoca = {
    function:'함수', 
    variable: '변수',
    constant: '상수',
    local: '지역의',
    global: '전반적인',
    name : 'yuna'
}; 

// 수정하기 
console.log(myVoca.name); // yuna
myVoca.name = "조연아";
console.log(myVoca.name) // 조연아

// 삭제하기
console.log(myVoca.function); // 함수 
delete myVoca.function;
console.log(myVoca.function); // undefined

메소드(Method)란?!

- property 값이 함수 일때! 객체의 메소드라고 한다 

// property값으로 함수를 정의하고 있다
// 메소드 활용1
let greetings = {
    sayHello: function(name){
        console.log(`Hello ${name}`); // console이라는 개체에 log라는 함수
    }, 
    sayHi: function(){
        console.log("Hi");
    },
    sayBye: function(){
        console.log("Bye");
    } 
};


greetings.sayHello("yuna");  // Hello yuna
greetings["sayHello"]("yuna2"); // Hello yuna2
greetings.sayHi(); // Hi


// 메소드 활용2

let rectAngle = {
    width :30, 
    height: 50, 
    getArea : function(){
        return rectAngle.width * rectAngle.height;
    } 
}


let triAngle = {
    width :15, 
    height: 40, 
    getArea : function(){
        return triAngle.width * triAngle.height / 2 ;
    } 
}   


// 실습3

let myVoca = {
    // 단어를 추가하는 addVoca메소드
    // 영어단어와 뜻, 총 두 개의 문자열 값을 파라미터로 전달
    addVoca: function(key, value){     
        myVoca[key] = value;
  },
  
    deleteVoca: function(key){
        delete myVoca[key];
    }, 

    printVoca: function(key){
        console.log(` "${key}"의 뜻은 "${myVoca[key]}"입니다`)
    }
};  

  // addVoca메소드 테스트 코드
  myVoca.addVoca('parameter', '매개 변수');
  myVoca.addVoca('element', '요소');
  myVoca.addVoca('property', '속성');
  console.log(myVoca);
  
  // deleteVoca메소드 테스트 코드
  myVoca.deleteVoca('parameter');
  myVoca.deleteVoca('element');
  console.log(myVoca);
  
  // printVoca메소드 테스트 코드
  myVoca.printVoca('property');

 

dd때 입니다. 객체