Warum ist Math.prototype nicht definiert?

8

Ich muss hier etwas verpassen, denn Math.prototype ist undefined für mich . Warum ist das? Ich habe versucht, so etwas zu tun:

%Vor%

Aber stattdessen musste etwas wie folgt gemacht werden:

%Vor%

Das fühlt sich jedoch nicht richtig an. Ist es nur ich oder sollte ich das anders machen? Ich entschuldige mich, wenn das eine dumme oder doppelte Frage ist, aber ich konnte nichts durch Suchen finden (genau zwei Fragen tauchen auf, wenn ich SO nach "Math.prototype" suche, was irgendwie komisch ist).

    
Elliot Bonneville 30.05.2012, 16:40
quelle

3 Antworten

6

Die Math -Funktionen sind wie Klassenfunktionen in anderen OO-Sprachen. Es gibt kein Prototyp-Objekt im Konstruktor; niemand (ich weiß) verwendet den Konstruktor trotzdem. (Was würden Sie mit einer Math Instanz tun?)

edit - es wurde in einem Kommentar darauf hingewiesen (und es kam mir nie in den Sinn, das zu überprüfen, denke ich), dass Math sowieso keine Funktion ist. Geben Sie Math() in Ihre Browser-Konsole ein und Sie erhalten eine Fehlermeldung.

    
Pointy 30.05.2012, 16:42
quelle
2

Math in JavaScript entspricht einer statischen Klasse in anderen Sprachen. Es hat keinen Prototyp oder Konstruktor (das Äquivalent von sagen wir, eine Klasse in Java mit allen statischen Methoden und nur einem privaten Konstruktor schreiben).

Weitere Informationen finden Sie in dieser StackOverflow-Frage: Gibt es eine praktische Möglichkeit, Math.constructor in JavaScript / ActionScript neu zu definieren?

Insbesondere die akzeptierte Antwort: Ссылка

    
Random Human 30.05.2012 16:44
quelle
1

Weil Math ein statisches Objekt ist, kein Konstruktor. Wenn Sie new Math()

aufrufen, wird ein Fehler ausgegeben     
Juan Mendes 30.05.2012 16:43
quelle

Tags und Links