Sorry, your browser doesn't support Java(tm). Hit-Parade

 
Qu'est-ce que des objets?
Dans Microsoft JScript, les objets sont essentiellement des collections de propri�t�s et de m�thodes. Une m�thode est une fonction membre d'un objet; une propri�t� une valeur ou un jeu de valeurs (sous la forme d'un tableau ou d'un objet), �galement membre d'un objet. JScript prend en charge trois types d'objets: les objets intrins�ques, les objets que vous cr�ez et ceux de l'Explorateur, qui ne sont pas expliqu�s ici.

 

Objets tableaux
Dans JScript, objets et tableaux sont trait�s de fa�on identique. Vous pouvez faire r�f�rence � tout membre d'un objet (ses propri�t�s et m�thodes) par son nom (en utilisant le nom de l'objet, suivi d'un point, puis du nom de la propri�t�) ou par son indice figurant dans le tableau. La num�rotation des indices dans JScript commence � 0. Pour plus de commodit�, vous pouvez aussi faire r�f�rence � l'indice par son nom.

Ainsi, la r�f�rence � une propri�t� peut se faire de plusieurs mani�res. Toutes les instructions suivantes sont �quivalentes.

 


theWidth = spaghetti.width;
theWidth = spaghetti[3];  // [3] est l'indice de "width".
theWidth = spaghetti["width"];
S'il est possible d'utiliser des crochets pour faire r�f�rence � une propri�t� par son indice num�rique, la convention appliquant un point (.) n'est pas autoris�e avec les num�ros d'indice. L'instruction suivante g�n�re une erreur.

 


theWidth = spaghetti.3;
Si un objet poss�de un autre objet comme propri�t�, la convention d'affectation des noms suit la m�me logique.

 


var init4 = toDoToday.shoppingList[3].substring(0,1);  // le tableau shoppingList est une propri�t� de toDoToday.
Le fait que des objets puissent avoir d'autres objets comme propri�t�s vous permet de g�n�rer des tableaux comportant plusieurs indices qui ne sont pas directement pris en charge. Le code suivant cr�e une table de multiplication pour les valeurs allant de 0x0 � 16x16.

 


var multTable = new Array(17);  // Cr�e la structure qui deviendra la table.
for (var j = 0; j < multTable.length; j++)  {  // La pr�pare pour la remplir de lignes.
    var aRow = new Array(17);  // Cr�e une ligne.
    for (var i = 0; i < aRow.length; i++)  {  // Pr�pare le remplissage des lignes.
    aRow[i] = (i + " x " + j + " = " + i*j);  // Cr�e et inscrit une valeur.
    }
multTable[j] = aRow;  // Place la ligne remplie dans la table.
}
Pour faire r�f�rence � un �l�ment d'un tableau de ce type, utilisez plusieurs paires de crochets.

var multiply3x7 = multTable[3][7];
L'instruction suivante g�n�re une erreur:

var multiply3x7 = multTable[3, 7];
Objets intrins�ques
Microsoft JScript fournit quatre objets intrins�ques (ou "int�gr�s"): Array, String, Math et Date.
Objets Array
Dans JScript, les objets sont trait�s comme des tableaux et inversement. La r�f�rence aux indices d'un tableau, parfaitement �quivalents aux propri�t�s d'un objet, peut s'effectuer par des num�ros (ou par des noms si vous leur avez affect� des noms). Pour cr�er un nouveau tableau, utilisez l'instruction new et le constructeur Array(), comme illustr� dans l'exemple suivant.

 


var theMonths = new Array(12)  {
theMonths[0] = "jan";
theMonths[1] = "f�v";
theMonths[2] = "mar";
theMonths[3] = "avr";
theMonths[4] = "mai";
theMonths[5] = "jun";
theMonths[6] = "jul";
theMonths[7] = "ao�";
theMonths[8] = "sep";
theMonths[9] = "oct";
theMonths[10] = "nov";
theMonths[11] = "d�c";
}
Lorsque vous cr�ez un tableau avec le mot cl� Array, JScript inclut au tableau une propri�t� length (longueur) en �criture seule, qui enregistre le nombre d'entr�es du tableau. Si vous ne pr�cisez aucun nombre, la propri�t� prend la valeur 0, et le tableau n'a aucune entr�e. Sinon, la longueur du tableau d�pend du nombre que vous avez indiqu�. Si vous sp�cifiez plusieurs param�tres, ils sont utilis�s comme entr�es du tableau, et le nombre de param�tres est affect� � la propri�t� length, comme illustr� dans l'exemple suivant, �quivalent au pr�c�dent.

 


var theMonths = new Array("jan", "f�v", "mar", "avr", "mai", "jun", "jul", "ao�", "sep", "oct", "nov", "d�c");
JScript modifie automatiquement la valeur de la length si vous ajoutez des �l�ments au tableau cr�� avec le mot cl� Array.

 

Objets String
Dans JScript, les cha�nes sont des objets. Autrement dit, chaque fois que vous d�clarez une variable de cha�ne ou utilisez un litt�ral de cha�ne, en r�alit� vous cr�ez un nouvel objet string (cha�ne). L'objet string poss�de certaines m�thodes int�gr�es que vous pouvez utiliser avec vos cha�nes. Notamment, la m�thode substring renvoie une partie de cha�ne. Deux chiffres constituent ses arguments.

 


aString = "0123456789";
var aChunk = aString.substring(4, 7);  // Affecte � aChunk la valeur "456".
var aNotherChunk = aString.substring(7, 4);  // Affecte � aNotherChunk la valeur "456".

// en utilisant l'exemple pr�c�dent de cr�ation de tableau:
firstLetter = theMonths [5].substring(0,1);  // Affecte � la variable firstLetter la valeur "j".
L'objet string poss�de entre autres la propri�t� length. Cette propri�t� contient le nombre de caract�res de la cha�ne, soit 0 pour une cha�ne vide. Il s'agit d'une valeur num�rique que vous pouvez utiliser directement dans les calculs.

var howLong = "Bonjour".length  // Affecte � la variable howLong la valeur 7.
Objet Math
L'objet Math comporte un certain nombre de propri�t�s et de m�thodes, toutes pr�d�finies. Les propri�t�s sont des nombres sp�cifiques. L'une d'entre elles, Math.PI, est la valeur de pi (environ 3,14159...), comme illustr� dans l'exemple suivant:

 


// Une variable radius est d�clar�e et prend une valeur num�rique.
var circleArea = Math.PI * radius * radius;  // Notez les majuscules dans Math et PI.
L'une des m�thodes int�gr�es de l'objet Math est la m�thode d'�l�vation � la puissance, pow. L'exemple suivant applique ces deux derni�res m�thodes.

 


// Cette formule calcule le volume d'une sph�re en fonction du rayon donn�.
volume = (4/3)*(Math.PI*Math.pow(radius,3));
Objet Date
Utilisez l'objet Date pour capturer la date actuelle et pour calculer les diff�rences de dates. Il poss�de un certain nombre de propri�t�s et m�thodes, toutes pr�d�finies. En g�n�ral,l'objet Date donne la date en jour, mois et ann�e; l'heure en heures, minutes et secondes.

Ces informations sont bas�es sur le nombre de millisecondes �coul�es depuis le 1er janvier 1970, 00:00:00.000 GMT. GMT (Greenwich Mean Time) est le temps universel (T.U.), mais l'acronyme UTC (Coordinated Universal Time) est g�n�ralement pr�f�r� et fait r�f�rence aux signaux �mis par le World Time Standard.

 

Note  Pour JScript, le point de r�f�rence est le 1er janvier 1970 � minuit. Vous ne pouvez donc pas demander � JScript de cr�er un objet Date repr�sentant une date ant�rieure. Si vous devez traiter des dates ant�rieures, il vous faut �crire votre propre code, t�che gigantesque.


Pour cr�er un nouvel objet Date, vous devez utiliser l'instruction new. L'exemple suivant calcule, pour l'ann�e en cours, le nombre de jours �coul�s et le nombre de jours restants.

 


/*
Cet exemple utilise le tableau des mois d�fini pr�c�demment.
La premi�re instruction affecte � la variable thisIsToday la date du jour, au format "Jour Mois Ann�e 00:00:00".
*/
var thisIsToday = new Date();

var toDay = new Date();  // Capture la date actuelle.

// Extrait l'ann�e, le mois et le jour.
var thisYear = toDay.getYear() + 1900;
var thisMonth = theMonths[toDay.getMonth()];
var thisDay = thisMonth  + " " + toDay.getDate() + "," + (parseInt(toDay.getYear()) + 1900);

// D�termine le nombre de jours depuis le point de r�f�rence.
thisDay = Math.round(Date.parse(thisDay)/8.64e7);

// Proc�de de m�me pour le d�but de l'ann�e.
var firstDay = "1er jan " + thisYear;
firstDay = Math.floor(Date.parse(firstDay)/8.64e7); 

// Proc�de de m�me pour la fin de l'ann�e, au cas o� ce serait une ann�e bissextile.
var lastDay = "31 d�c " + thisYear;
lastDay = Math.floor(Date.parse(lastDay)/8.64e7);

// Calcule le nombre de jours dans l'ann�e.
var daysInYear = (lastDay - firstDay) + 1;

// D�termine le nombre de jours �coul�s et le nombre de jours restants.
var daysElapsed = thisDay - firstDay;
var daysLeft = daysInYear - daysElapsed; 

// D�finit des commentaires pour la plupart de l'ann�e.
var comment1 = daysElapsed+ " jours se sont �coul�s dans l'ann�e.";
var comment2 = "Cela signifie qu'il reste " + daysLeft + " jours en " + thisYear + ".";

// Couvre les cas sp�ciaux: d�but et fin de l'ann�e et jour isol�.
if (daysElapsed == 0)  {
comment1 = "1er janvier " + thisYear + ".";
}
if (daysElapsed == 1) {
comment1 = "Un seul jour s'est �coul�.";
}
if(daysElapsed == daysInYear) {
comment1 = thisYear + " est presque termin�.";
}

if (daysLeft == 0)  {
comment2 = "Meilleurs v�ux pour la nouvelle ann�e!";
}
if (daysLeft == 1)  {
comment2 = thisYear + "ne compte plus qu'une journ�e.";
}
if (daysLeft == daysInYear)  {
comment2 = "Bonne ann�e!";
}
 
Avant de cr�er des instances d'un objet, vous devez le d�finir en lui attribuant des propri�t�s et, le cas �ch�ant, des m�thodes. L'exemple suivant d�finit un objet pasta (p�te). Notez le mot cl� this, utilis� pour faire r�f�rence � l'objet en cours.

 


function pasta( grain, grain2, width, shape, shapenum, extent, egg )
{
  this.length = 7;   // Nombre de propri�t�s de l'objet, celle-ci exclue.
  this.grain = grain;   // Quelle c�r�ale est utilis�e? (cha�ne)
  this.grain2 = grain2;   // Aucune autre farine utilis�e? (cha�ne)
  this.width = width;     // Quelle est la largeur? (chiffre)
  this.shape = shape;   // Quelle est la coupe transversale? (cha�ne)
  this.shapenum = shapenum;  // S'agit-il d'une des formes enregistr�es? (chiffre)
  this.extent = extent;    // Quelle est la longueur? (chiffre)
  this.egg = egg;  // Des jaunes d'�ufs sont-ils utilis�s comme liant? (bool�en)
}
Une fois que vous avez d�fini un objet, vous pouvez en cr�er des instances avec l'instruction new.

 


var spaghetti = new pasta("bl�", "", 0.2, "cercle", 9, 30, true);
var linguine = new pasta("bl�", "", 0.3, "ovale", 17, 30, true);
Vous pouvez ajouter des propri�t�s � une instance d'un objet pour la modifier, sans qu'elles fassent partie de la d�finition de l'objet, ni qu'elles apparaissent dans les autres instances (� moins que vous ne les ayez ajout�es sp�cifiquement). Si vous voulez que les propri�t�s suppl�mentaires soient affect�es � toutes les instances de l'objet, vous devez les ajouter � la d�finition de celui-ci.

 


// Propri�t�s suppl�mentaires pour spaghetti.
spaghetti.color = "jaune p�le";
spaghetti.drycook = 7;
spaghetti.freshcook = 0.5;

var chowFun = new pasta("riz", "", 3, "plate", , 12, false); 
/*
La d�finition des objets chowFun, linguine et pasta ne poss�de pas les trois propri�t�s ajout�es � l'objet spaghetti.
*/
Ajout de m�thodes � la d�finition
Il est possible d'inclure des m�thodes � la d�finition d'un objet. L'exemple suivant cr�e un objet comportant un tableau de cha�nes et une m�thode. La m�thode ajoute une cha�ne au tableau. Elle l'agrandit pour ce faire. Notez que cette m�thode rend chaque instance de l'objet extensible � l'infini.

 


function addItem(newItem)  // D�finit une fonction pour agrandir la liste.
{
    this.length += 1;  // Incr�mente la taille du tableau.
    this[(this.length-1)] = newItem;  // Ajoute le nouvel �l�ment et met � jour la num�rotation des �l�ments.
}

function shoppingList(firstItem) // D�finit un objet shoppinglist.
{
    this.length = 2;  // Nombre de propri�t�s de l'objet, celle-ci exclue.
    this.addItem = addItem;   // Ajoute la fonction addItem comme m�thode.
    this[(this.length-1)] = firstItem;  // Le premier �l�ment porte le num�ro 1.
}

var myList = new shoppingList("Lait");
myList.addItem("Oeufs");  // Utilise la m�thode pour ajouter des �ufs, qui deviennent l'�l�ment 2.
myList.addItem("Fruits");  // Fruits devient l'�l�ment 3.
� ce stade, le contenu du tableau est le suivant:

 

  • myList[length] renvoie 4
  • myList[addItem] correspond � la fonction addItem
  • myList[1] renvoie Lait
  • myList[2] renvoie Oeufs
  • myList[3] renvoie Fruits
Notez que l'affectation des indices n'est pas n�cessairement telle que vous l'escompteriez si elle s'effectuait strictement de fa�on num�rique. Si vous appliquez une boucle for...in sur ce tableau, la boucle s'ex�cute dans l'ordre donn� ici, et la variable de boucle a pour valeur initiale "length" et non 0.

 

 

 


 

 

1
Hosted by www.Geocities.ws