Esta página foi traduzida do inglês pela comunidade. Saiba mais e junte-se à comunidade MDN Web Docs.

View in English Always switch to English

Object.prototype.toString()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨julho de 2015⁩.

Sumário

O método toString() retorna uma string representando o objeto.

Experimente

function Dog(name) {
  this.name = name;
}

const dog1 = new Dog("Gabby");

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

console.log(dog1.toString());
// Expected output: "Gabby"

Sintaxe

js
obj.toString();

Descrição

Todo objeto possui um método toString() que é chamado automaticamente quando o objeto precisa ser representado como um valor em texto ou quando o objeto é referenciado de uma maneira que requeira uma string. Por padrão, o método toString() é herdado de todo objeto descendente de Object. Se e o método não é sobrescrito em um objeto personalizado, toString() retorna "[object type]", onde type é o tipo do objeto. O código a seguir ilustra isso:

js
var o = new Object();
o.toString(); // retorna [object Object]

Nota: Starting in JavaScript 1.8.5 toString() called on null returns [object Null], and undefined returns [object Undefined], as defined in the 5th Edition of ECMAScript and a subsequent Errata. See Using toString to detect object type.

Examples

Exemplo: Sobrepondo o método inicial toString

Você pode criar uma função para ser chamada no lugar do método toString(). O método toString() não requer parâmetros e deve retornar uma string. O método toString() criado por você pode ter o valor que quiser, mas será mais útil se usar informações do objeto.

O código abaixo define o objeto Dog e cria theDog, um objeto do tipo Dog:

js
function Dog(name, breed, color, sex) {
  this.name = name;
  this.breed = breed;
  this.color = color;
  this.sex = sex;
}

theDog = new Dog("Gabby", "Lab", "chocolate", "female");

Se você chamar o método toString() neste objeto, ele retornará o valor original herdado de Object:

js
theDog.toString(); // returns [object Object]

O código abaixo cria e faz com que dogToString() sobrescreva o toString() original. Esta função gera uma string contendo name, breed, color, and sex do objeto, na forma de "propriedade = valor;".

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

Usando este código, toda vez que theDog for usado em um texto (string), JavaScript automaticamente chamará a função dogToString(), a qual retornará:

Dog Gabby is a female chocolate Lab

Exemplo: Usando toString() para detectar a classe do objeto

toString() pode ser usado com qualquer objeto e permite que você determine sua classe. Para usar Object.prototype.toString() com qualquer objeto, deverá chamar Function.prototype.call() ou Function.prototype.apply() nele, passando o objeto que quer inspecionar como o primeiro parâmetro, chamado thisArg.

js
var toString = Object.prototype.toString;

toString.call(new Date()); // [object Date]
toString.call(new String()); // [object String]
toString.call(Math); // [object Math]

// Since JavaScript 1.8.5
toString.call(undefined); // [object Undefined]
toString.call(null); // [object Null]

Especificações

Specification
ECMAScript® 2026 Language Specification
# sec-object.prototype.tostring

Compatibilidade

Veja também