Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
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étodotoString() retorna uma string representando o objeto.
In this article
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
obj.toString();Descrição
Todo objeto possui um métodotoString() 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étodotoString() é herdado de todo objeto descendente deObject. Se e o método não é sobrescrito em um objeto personalizado,toString() retorna "[objecttype]", ondetype é o tipo do objeto. O código a seguir ilustra isso:
var o = new Object();o.toString(); // retorna [object Object]Nota:Starting in JavaScript 1.8.5toString() called onnull returns[object Null], andundefined returns[object Undefined], as defined in the 5th Edition of ECMAScript and a subsequent Errata. SeeUsing toString to detect object type.
Examples
>Exemplo: Sobrepondo o método inicialtoString
Você pode criar uma função para ser chamada no lugar do métodotoString(). O métodotoString() não requer parâmetros e deve retornar uma string. O métodotoString() 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 objetoDog e criatheDog, um objeto do tipoDog:
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étodotoString() neste objeto, ele retornará o valor original herdado deObject:
theDog.toString(); // returns [object Object]O código abaixo cria e faz com quedogToString() sobrescreva otoString() original. Esta função gera uma string contendoname, breed, color, and sex do objeto, na forma de "propriedade = valor;".
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 quetheDog for usado em um texto (string), JavaScript automaticamente chamará a funçãodogToString(), a qual retornará:
Dog Gabby is a female chocolate Lab
Exemplo: UsandotoString() para detectar a classe do objeto
toString() pode ser usado com qualquer objeto e permite que você determine sua classe. Para usarObject.prototype.toString() com qualquer objeto, deverá chamarFunction.prototype.call() ouFunction.prototype.apply() nele, passando o objeto que quer inspecionar como o primeiro parâmetro, chamadothisArg.
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.5toString.call(undefined); // [object Undefined]toString.call(null); // [object Null]Especificações
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-object.prototype.tostring> |