본문 바로가기

프로그래밍 공부/JavaScript

JavaScript - 속성과 메서드

배열 내부의 값인 요소(element)와 마찬가지로 객체의 내부의 값은 속성(property)이라고 부른다. 배열의 요소에 들어갈 수 있는 자료형은 숫자, 문자열, 불린, 배열 그리고 함수가 있듯이 객체도 내부의 모든 형태의 자료형이 들어갈 수 있다.

let testobject={

      숫자:1,

      문자열:'자바스크립트',

      불린:true,

      배열:[1,2,3,4,5],

      메서드:function(){}

};

console.log(testobject);

이런 객체의 속성중 함수(function) 자료형은 배열과는 다르게 메서드(method)라고 부른다. 

let person={

      name:'홍길동',

      eat:function(n){

          alert(this.name+"이 "+n+"을/를 먹는다.");

      }

};

// 메서드를 호출한다.

person.eat('주먹밥');

객체 person은 name 속성과 eat 속성이 있는데 eat 속성은 함수 자료형이므로 특별히 eat( ) 메서드라고 부르게 된다. 메서드 내에서 자기 자신이 가진 속성을 출력하고 싶을 때는 자신이 가진 속성임을 분명하게 표시해야 한다. 자기 자신이 가진 속성이라는 것을 표기할 때는 this 키워드를 사용한다. 위의 코드에서 alert(this.name+"이 "+n+"을/를 먹는다.");의 this 키워드가 그것이다. this.name이 입력 되었으므로 person 객체의 name키를 가진 '홍길동' 속성을 가져온다.

객체의 메서드 자료형 1

let plus={

      덧셈:10,

      do:function(m){

          let dap;

          dap=this.덧셈+m;

          return alert('10 + ' + m + ' = ' + dap);

       }

};

plus.do(Number(prompt("더하기 할 숫자를 입력하라")));

메서드를 호출하는 방식은 함수를 호출하는 방식과 유사하다. 또 메서드를 호출할 때 prompt()를 이용해서 사용자에게 값을 받아 리턴을 받을 수 있다.

객체의 메서드 자료형 2

let sum={

      a:10,

      b:20,

      c:30,

      sums:function(){

          let result;

          result=this.a+this.b+this.c;

          return result;

      }

};

console.log(sum.sums());

객체 내부의 속성들을 메소드 속성을 이용해서 더할 수 있다.

객체의 메서드 자료형 3

let choose={

      j:Number(prompt("숫자를 입력하시오.")),

      select:function(){

          let answer=100;

          if(this.j<=100){

              answer+=this.j

          }

          else if(this.j>100){

              answer=this.j-answer;

          }

          return answer;

      }

}

console.log(choose.select());

객체의 속성자체를 prompt로 사용자에게 받은후 메서드 속성을 이용해 조건문으로 실행시키는 것도 가능하다.

객체의 메서드 자료형 4

let object={

    a:10,

    b:20,

    c:30,

    sums:function(){

        let result=0;

        for(let key in this){

            if(key != 'sums'){

                result+=this[key];

            }

        }

        return result;

    }

};

alert(object.sums());

마지막으로 this 키워드는 C++나 자바같은 다른 프로그래밍 언어의 객체 내부에서는 this 키워드를 생략할 수 있는데 자바스크립트는 this 키워드를 절대 생략할 수 없다.

속성과 메서드.html
0.00MB