Esta tradução está incompleta. Ajude atraduzir este artigo.
Sumário
O método toString()
retorna uma string representando o objeto.
Sintaxe
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:
var o = new Object(); o.toString(); // retorna [object Object]
Note: 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
:
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
:
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
Exemplo: Usando toString()
para detectar a classe do objeto
toString()
pode ser usado com qualquer objeto e permite que você pegue 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
.
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 | Status | Comment |
---|---|---|
ECMAScript 1st Edition. | Standard | Initial definition. Implemented in JavaScript 1.0. |
ECMAScript 5.1 (ECMA-262) The definition of 'Object.prototype.toString' in that specification. |
Standard | Call on null returns [object Null] , and undefined returns [object Undefined] |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Object.prototype.toString' in that specification. |
Standard |
Compatibilidade
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |