--- title: Object.prototype.toString() slug: Web/JavaScript/Reference/Global_Objects/Object/toString translation_of: Web/JavaScript/Reference/Global_Objects/Object/toString ---
O método toString() retorna uma string representando o objeto.
obj.toString()
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:
var o = new Object(); o.toString(); // retorna [object Object]
Note: Starting in JavaScript 1.8.5 toString() called on {{jsxref("Global_Objects/null", "null")}} returns [object Null], and {{jsxref("Global_Objects/undefined", "undefined")}} returns [object Undefined], as defined in the 5th Edition of ECMAScript and a subsequent Errata. See {{anch("Example:_Using_toString_to_detect_object_type", "Using toString to detect object type")}}.
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:
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 {{jsxref("Global_Objects/Object", "Object")}}:
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;".
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
toString() para detectar a classe do objetotoString() pode ser usado com qualquer objeto e permite que você pegue sua classe. Para usar Object.prototype.toString() com qualquer objeto, deverá chamar {{jsxref("Function.prototype.call()")}} ou {{jsxref("Function.prototype.apply()")}} nele, passando o objeto que quer inspecionar como o primeiro parâmetro, chamado thisArg.
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]
| Specification | Status | Comment |
|---|---|---|
| ECMAScript 1st Edition. | Standard | Initial definition. Implemented in JavaScript 1.0. |
| {{SpecName('ES5.1', '#sec-15.2.4.2', 'Object.prototype.toString')}} | {{Spec2('ES5.1')}} | Call on {{jsxref("Global_Objects/null", "null")}} returns [object Null], and {{jsxref("Global_Objects/undefined", "undefined")}} returns [object Undefined] |
| {{SpecName('ES6', '#sec-object.prototype.tostring', 'Object.prototype.toString')}} | {{Spec2('ES6')}} |
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |