Object.prototype.toString()
Sumário
O método toString()
retorna uma string representando o objeto.
Experimente
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]
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
:
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ê 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
.
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 Language Specification # sec-object.prototype.tostring |
Compatibilidade
BCD tables only load in the browser