<script language="javascript">
FunktionKreis(Radius)
{//Diese Funktion definiert die Klasse selbst. Das folgende r ist eine vom Konstruktor definierte und initialisierte Instanzvariable.
this.r=radius;
}
//Dieses Attribut ist eine Klassenvariable, die ein Attribut des Konstruktors ist
Kreis.PI=3.14159;
Funktionsbereich()
{//Das ist natürlich die Formel zur Berechnung der Fläche eines Kreises.
return this.PI * this.r * this.r;
}
// Im Folgenden machen wir es zu einer Instanzmethode, indem wir die Funktion dem kreisförmigen Objekt des Konstruktors zuweisen.
//Um mit Navigator3 kompatibel zu sein, müssen wir ein Objekt erstellen und verwerfen, bevor das Prototypobjekt generiert wird
newcircel(0);
Circle.prototype.area=Bereich;
//Das Folgende ist eine weitere Funktion, die zwei Parameter vergleicht und den größeren zurückgibt
functioncircel_max(a,b)
{
if(ar > br)
gib a zurück;
anders
Rückkehr b;
}
//Da diese Funktion zwei Objekte vergleicht, macht es keinen Sinn, sie als Operation für eine einzelne Circel-Instanzmethode zu behandeln.
//Aber wir wollen keine unabhängige Funktion werden, also weisen wir ihr einen Konstruktor zu und machen sie zu einer Klassenmethode.
circel.max=circel_max;
//Der folgende Code verwendet verschiedene Kreisfelder
var c=new circel(1.0); //Eine Instanz der Circel-Klasse erstellen
cr=2.2; //Lege eine Variable r der Instanz fest
var a=c.area(); //Rufen Sie die Bereichsmethode der Instanz auf
var x=Math.exp(circel.PI); //Verwenden Sie die Variable PI in unseren eigenen Berechnungen
var d=new circel(1.2); //Eine weitere Circel-Instanz erstellen
var größer=circel.max(c,d);//Klassenmethode circel.max verwenden
</script>
JScript.js-Datei
/**//* JScript-Datei Eine komplexe Zahl ist die Summe einer imaginären Zahl und einer imaginären Zahl i ist die Quadratwurzel von -1
*/
/**//*Der erste Schritt bei der Definition einer Klasse besteht darin, den Konstruktor der Klasse zu definieren. Der qualifizierte Konstruktor initialisiert alle Instanzfunktionen des Objekts. Diese Attribute sind die zentralen „Zustandsvariablen“, die jede Instanz der Klasse aktivieren Klasse, um miteinander zu interagieren
*/
Funktion JScript(real,img)
{
this.x=real;//realer Teil
this.y=img;//Imaginärteil
}
/**//*Der zweite Schritt beim Definieren einer Funktionsklasse besteht darin, ihre Instanzmethode (oder andere Attribute) im Prototypobjekt des Konstruktors zu definieren
Alle von diesem Objekt definierten Eigenschaften werden von allen Instanzen dieser Klasse geerbt. Beachten Sie, dass Instanzmethoden implizit mit dem Schlüsselwort this arbeiten.
*/
//Gibt die Größe der komplexen Zahl zurück, die als Abstand vom Ursprung (0,0) zur komplexen Ebene definiert ist
JScript.prototype.magnitude=function()
{
return Math.sqrt(this.x * this.x + this.y * this.y);
};
//Das Gegenteil einer komplexen Zahl zurückgeben
JScript.prototype.negative=function()
{
return new JScript(-this.x,-this.y);
};
// Konvertieren Sie das JScript-Objekt auf effiziente Weise in einen String. Dies ist die Funktion, die aufgerufen wird, wenn das JScript-Objekt als String verwendet wird.
JScript.prototype.toString=function()
{
return „{“+ this.x +“, „+ this.y +“}“;
};
//Gibt den Realteil einer komplexen Zahl zurück. Diese Funktion wird aufgerufen, wenn ein JScript-Objekt als primitiver Wert verarbeitet wird.
JScript.prototype.valueOf=function() {return this.x;};
/**//*Der dritte Schritt beim Definieren einer Klasse besteht darin, Klassenmethoden zu definieren.
Konstanten und andere Klassenvariablen sind Eigenschaften des Funktionskonstruktors selbst (und nicht Eigenschaften des Prototypobjekts des Konstruktors).
Beachten Sie, dass statische Methoden das Schlüsselwort this nicht verwenden, da sie nur mit Parametern arbeiten
*/
//Berechnen Sie die Summe zweier komplexer Zahlen und geben Sie das Ergebnis zurück
JScript.add()=function(a,b)
{
return new JScript(ax + bx ,ay + by);
};
//Eine komplexe Zahl von einer anderen komplexen Zahl subtrahieren und das Ergebnis zurückgeben
JScript.subtract()=function(a,b)
{
return new JScript(ax - bx, ay - by);
};
//Berechnen Sie das Produkt zweier komplexer Zahlen und geben Sie das Ergebnis zurück
JScript.multiply()=function(a,b)
{
return new JScript(ax * bx - ay * by , ax * bx + xy * by);
};
/**//*Die folgenden sind einige nützliche vordefinierte Pluralformen. Sie sind als Klassenvariablen definiert, sodass sie als Konstanten verwendet werden können (beachten Sie, dass sie eigentlich nicht schreibgeschützt sind).
*/
JScript.zero=new JScript(0,0);
JScript.one=neues JScript(1.0);
JScript.i=new JScript(0.1);