ZeBorG Yes we can! | re-bonjour,
l'oop en javascript c'est bien et tout mais j'ai un peu du mal avec l'héritage. Il y à 1000 façons d'écrire la même chose et je m'y perds un peu. Je souhaite étendre la class Date avec quelques fonctions du style getMonthName qui renvoi directement le nom du mois et non le numéro comme le fait getMonth.
Pour l'instant, j'arrive à ajouter des méthodes directement dans l'objet Date comme ceci :
Code :
- Date.prototype.monthNames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" );
- Date.prototype.getMonthName = getMonthName;
- function getMonthName(){
- return this.monthNames[this.getMonth()];
- }
|
Ainsi, sur mes objets Date, je peux directement appeler getMonthName comme ceci :
Code :
- var myDate = new Date(2005, 2, 24, 1, 5, 0);
- alert(myDate.getMonthName()); // ceci renvoi "March"
|
Mais ce que je préfèrerai faire c'est crée une class DateEx qui hérite de Date puis je lui ajoute des méthode comme ceci :
Code :
- var myDate = new DateEx(2005, 2, 24, 1, 5, 0);
- alert(myDate.getMonthName()); // ceci renvoi "March"
|
Voici comment j'ai essayé de procéder :
Code :
- function DateEx() {
- this.monthNames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" );
- this.getMonthName = getMonthName;
- }
- DateEx.prototype = new Date();
- function getMonthName(){
- return this.monthNames[this.getMonth()];
- }
|
Malheureusement, la console javascript de firefox m'indique que this.getMonth n'existe pas. Comment faire ?
|