Warum Object.prototype.toString anstelle von Function.prototype.toString oder anderen verwenden? Dies hängt mit ihrer toString-Interpretationsmethode zusammen. Das Folgende ist die Erklärung von Object.prototype.toString in ECMA:
Object.prototype.toString( )
Wenn die toString-Methode aufgerufen wird, werden die folgenden Schritte ausgeführt:
1. Holen Sie sich die [[Class]]-Eigenschaft dieses Objekts.
2. Berechnen Sie einen String-Wert, indem Sie die drei Strings „[object“, „Result (1)“ und „]“ verketten.
3. Ergebnis zurückgeben (2)
Der Prozess ist einfach wie folgt: 1. Ermitteln Sie den Klassennamen (Objekttyp) des Objekts. 2. Kombinieren Sie dann [Objekt, erhaltener Klassenname] und kehren Sie zurück.
ECMA hat die folgende Beschreibung des Arrays:
Die [[Class]]-Eigenschaft des neu erstellten Objekts wird auf „Array“ gesetzt.
Daher verwenden wir den folgenden Code, um das Array zu erkennen:
function isArray(o) { return Object.prototype.toString.call(o) === '[object Array]' }
Diese Methode löst nicht nur das seitenübergreifende Problem der Instanz von, sondern auch das Problem der Attributerkennungsmethode. Es ist wirklich ein Coup und eine gute Lösung.
Darüber hinaus kann diese Lösung auch zur Bestimmung von Objekten vom Typ Datum, Funktion und anderen Typen angewendet werden.
Es gibt mehrere andere Methoden:
var arr = []; return arr exampleof Array;
Wenn es andere gute Methoden gibt, posten Sie sie bitte.