JAVASCRIPT 25 Object Method
함수 또한 그저 값이다!
this 는 method가 선언된 객체와 같다.
배열도 객체다
자바스크립트 에서는 함수도 그저 value 이다. 따라서 객체의 특성, 키 로써도 이용가능하다.
const jonas1 = {
birthYear: 2001,
calcYear: function (birthYear) {
return 2020 - birthYear;
}
다음과 같이 객체 안에서 함수를 정의 할 수 있다. 이는 앞서 말했듯 함수 또한 결국 값이기 때문이다.
const jonas1 = {
birthYear: 2001,
calcYear: function () {
return 2020 - this.birthYear;
}}
다음 함수를 보자. 위 함수와 비슷한 역할을 하지만 함수의 매개 변수가 빠져 있다.
이는 this 때문이다. 우선 method는 자바스크립트에서 객체 안에서 선언된 함수를 뜻하는데
이때 this 는 method 가 선언된 객체와 같은 역할을 한다.
따라서 this.birthYear 은 다시 말하자면 calcYear은 jonas1 이란 객체에서 선언된 method이고 결국 jonas1.birthYear 과 같다. 굳이 this를 쓰는 이유는 여기선 만약 jonas1 이란 객체명이 변경 되면 그 아래 있는 모든 jonas1 을 바꿔야 되기 때문이다.
const jonas1 = {
birthYear: 2001,
calcYear: function () {
this.age = 2020 - this.birthYear;
return this.age
}
}
다음도 같은 역할을 하지만 이는 매쏘드를 여러번 호출 할때 매우 유리하다.
console.log(jonas1.calcYear());
console.log(jonas1.age);
console.log(jonas1.age);
console.log(jonas1.age);
이제 calcYear을 알고 싶다면 맨 처음만 계산한 후 그저 jonas1.age 를 하게 되면 매번 계산할 필요 없이 바로 사용 할 수 있기 때문이다.
앞서 배웠던 배열의 매쏘드를 생각해보자 분명 매쏘드란 객체에서 정의 된 함수를 뜻하지 않았는가 여기서 배열은 객체의 한 종류임을 알 수 있다.
댓글
댓글 쓰기