Object.prototype.toString()

Sommario

Il metodo toString() restituisce una stringa a che rappresenta l'oggetto.

Sintassi

obj.toString()

Descrizione

Ogni oggetto ha un metodo toString() che è automaticamente chiamato quando l'oggetto deve essere rappresentato come valore testuale o quando l'oggetto è referenziato in un contesto in cui viene attesa una stringa. Di default, il metodo toString() è ereditato da ogni oggetto che discende da Object. Se il metodo non è sovrascritto in un oggetto personalizzato, toString() restituisce "[object type]", dove type è il tipo di oggetto. Il codice di seguito lo illustra:

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

Nota: A partire da JavaScript 1.8.5 toString() richiamato su null restituisce [object Null], e undefined restituisce [object Undefined], come definito nella versione 5 di ECMAScript e nei succcessivi Errata. Vedi Using toString to detect object type.

Esempi

Esempio: Sovrascrittura del metodo di default toString 

Puoi creare una funzione che deve essere richiamata al posto del default metodo toString(). Il metodo toString() non prende argomenti e deve restituire una stringa. Esso può assumere qualunque valore tu voglia, ma sarà molto utile se comunichi informazioni sull'oggetto.

Il codice seguente definisce l'oggetto Dog e crea theDog, ovvero un oggetto di 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');

Richiamando il metodo toString() su questo oggetto personalizzato, esso restituisce il valore di default ereditato da Object:

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

Il codice seguente crea e assegna il metodo dogToString() per sovrascrivere il metodo di default toString(). Questa funzione genera una stringa contenente i valori name, breed, color e sex dell'oggetto, nella forma di "property = value;".

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

Col precedente codice, la funzione dogToString() è richiamata automaticamente da JavaScript ogni volta che l'oggetto theDog è usato in un contesto string, e restituisce la seguente stringa:

Dog Gabby is a female chocolate Lab

Esempio: Uso di toString() per individuare l'oggetto class

toString() può essere usato con ogni oggetto e permette di ottenere il suo class. Per usare Object.prototype.toString() con ogni oggetto, c'è bisogno di richiamare Function.prototype.call() o Function.prototype.apply() su di esso, passando l'oggetto che si cerca di ispezionare come primo parametro chiamato 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]

Specifiche

Specifiche Stato Commento
ECMAScript 1 Edizione. Standard Definizione iniziale. Implementato in JavaScript 1.0.
ECMAScript 5.1 (ECMA-262)
The definition of 'Object.prototype.toString' in that specification.
Standard Richiamato su null restituisce [object Null], e undefined restituisce [object Undefined]
ECMAScript 6 (ECMA-262)
The definition of 'Object.prototype.toString' in that specification.
Release Candidate  

Compatibilità browser

Caratteristiche Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support Base (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support Base (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Vedi anche

Tag del documento e collaboratori

 Hanno collaborato alla realizzazione di questa pagina: claudio.mantuano
 Ultima modifica di: claudio.mantuano,