JavaScript

22.05.08 객체와 toString()

슈팅스타제제 2022. 5. 8. 17:12

나는 toString() 이 그냥 문자형으로 바꿔주는 함수인줄만 알고 있었다.

toString() 은 문자열을 반환하는 Object 의 대표적인 방법이라고 하는데 이게 무슨 말?!

 

일단, 생성자 함수는 다음과 같다고 하자.

function Dog(name){
  this.name = name
}
const dog1 = new Dog('Podo')

생성자 함수에 관한 내용은 아래 참고하기!

2022.05.08 - [JavaScript] - 22.05.08 생성자 함수와 new 연산자

 

Dog.prototype.toString = function dogToString(){
  return `${this.name}`
}

객체의 속성에 대한 값을 문자열로 보여준다는 것인가?


음 그러면 dog1 의 성별을 생성자 함수에서 정의하고 

toString 함수를 정의한 부분의 반환문에서 성별을 반환하게 해보자. 

 

function Dog(name){
  this.name = name
  this.sex = 'female'
}

const dog1 = new Dog('Podo')
Dog.prototype.toString = function dogToString(){
  return `${this.sex}`
}

그 외에도 내가 알고 싶은 값에 대한 속성을 특정하면

위와 같이 값을 출력한다. 


그러면 객체 타입을 속성 값을 인자로 받아서 다시 정의하는 함수로 바꾸고

function Dog(name, breed, color, sex){
  this.name = name
  this.breed = breed
  this.color = color
  this.sex = sex
}
const dog1 = new Dog('Podo', 'Lab', 'Gray', 'Female')

 

여기서 그냥 dog1.toString() 을 출력하면 이렇게 된다. 

 

toString 함수를 따로 정의하면 입맛대로 바꿀 수 있다!!

Dog.prototype.toString = function dogToString() {
  var ret = 'Dog ' + this.name + ' is a ' + this.sex + ' ' + this.color + ' ' + this.breed;
  return ret;
}

 

참고자료링크

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/toString

 

Object.prototype.toString() - JavaScript | MDN

The toString() 은 문자열을 반환하는 object의 대표적인 방법이다

developer.mozilla.org