<linguagem script="javascript">
funçãocírculo(raio)
{//Esta função define a própria classe. O r a seguir é uma variável de instância definida e inicializada pelo construtor.
isto.r=raio;
}
//Este atributo é uma variável de classe, que é um atributo do construtor
círculo.PI=3,14159;
área de função()
{//Esta é obviamente a fórmula para calcular a área de um círculo.
retorne isto.PI * isto.r * isto.r;
}
// Abaixo fazemos dele um método de instância atribuindo a função ao objeto circular do construtor.
//Para sermos compatíveis com o Navigator3, devemos criar e descartar um objeto antes que o objeto protótipo seja gerado
novocírculo(0);
círculo.prototype.area=área;
//A seguir está outra função que compara dois parâmetros e retorna o maior
funçãocircel_max(a,b)
{
se(ar > br)
retornar um;
outro
retornarb;
}
//Como esta função compara dois objetos, não faz sentido tratá-la como uma operação em um único método de instância Circel.
//Mas não queremos nos tornar uma função independente, então atribuímos a ela um construtor e a tornamos um método de classe.
circel.max=circel_max;
//O código a seguir usa vários campos do círculo
var c=new circel(1.0); //Cria uma instância da classe circel
cr=2.2; //Definir uma variável r da instância
var a=c.area();
var x=Math.exp(circel.PI); //Use a variável PI em nossos próprios cálculos;
var d=new circel(1.2); //Cria outra instância de circel
var maior=circel.max(c,d);//Usar método de classe circel.max
</script>
Arquivo JScript.js
/**//* Arquivo JScript Um número complexo é a soma de um número imaginário e um número imaginário O número imaginário i é a raiz quadrada de -1.
*/
/**//*A primeira etapa na definição de uma classe é definir o construtor da classe. O construtor qualificado inicializa todas as funções de instância do objeto. Esses atributos são as "variáveis de estado" principais que habilitam cada instância do objeto. classe para interagir uns com os outros.
*/
função JScript(real,img)
{
this.x=real;//parte real
this.y=img;//Parte imaginária
}
/**//*O segundo passo na definição de uma classe de função é definir seu método de instância (ou outros atributos) no objeto protótipo do construtor
Quaisquer propriedades definidas por este objeto serão herdadas por todas as instâncias desta classe. Observe que os métodos de instância operam implicitamente na palavra-chave this.
*/
//Retorna o tamanho do número complexo, que é definido como a distância da origem (0,0) ao plano complexo
JScript.prototype.magnitude=função()
{
retornar Math.sqrt(este.x * isto.x + isto.y * isto.y);
};
//Retorna o oposto de um número complexo
JScript.prototype.negative=função()
{
retornar novo JScript(-this.x,-this.y);
};
// Converte o objeto JScript em uma string de forma eficiente. Esta será a função chamada ao usar o objeto JScript como uma string.
JScript.prototype.toString=função()
{
return "{"+ isto.x +","+ isto.y +"}";
};
//Retorna a parte real de um número complexo Esta função é chamada ao processar um objeto JScript como um valor primitivo.
JScript.prototype.valueOf=function() {return this.x;}
/**//*A terceira etapa na definição de uma classe é definir os métodos de classe.
Constantes e outras variáveis de classe são propriedades do próprio construtor da função (em vez de propriedades do objeto protótipo do construtor)
Observe que os métodos estáticos não usam a palavra-chave this porque operam apenas em parâmetros
*/
//Calcula a soma de dois números complexos e retorna o resultado
JScript.add()=função(a,b)
{
retornar novo JScript (ax + bx, ay + por);
};
//Subtrai um número complexo de outro número complexo e retorna o resultado
JScript.subtract()=função(a,b)
{
retornar novo JScript (ax - bx, ay - por);
};
//Calcula o produto de dois números complexos e retorna o resultado
JScript.multiply()=função(a,b)
{
retornar novo JScript (ax * bx - ay * by, ax * bx + xy * by);
};
/**//*A seguir estão alguns plurais predefinidos úteis. Eles são definidos como variáveis de classe para que possam ser usados como constantes (observe que na verdade não são somente leitura).
*/
JScript.zero=novo JScript(0,0);
JScript.one=novo JScript(1.0);
JScript.i=novo JScript(0.1);