c'est bizarre que ca n'ai pas été inclus dans le language que par typeof avec lequel il faut lever des ambiguités...
Il y a aussi prototype.constructor Par ex. : Object.prototype.getType=function(){ t=/^function ([^( ]+)/.exec(this.constructor.toString()); return t?t[1]:null; };
a=[1, 2, 3]; alert(a.getType());
"Limitation" de l'utilisation de constructor : quand on définit une instance d'objet dont le constructeur est une fonction définie en JS, constructor renvoie la fonction et non l'objet Object. C'est un comportement logique dans la mesure où Object est l'ancêtre de tout objet JS, y compris Array, Number, etc.
c'est bizarre que ca n'ai pas été inclus dans le language que par typeof
avec lequel il faut lever des ambiguités...
Il y a aussi prototype.constructor
Par ex. :
Object.prototype.getType=function(){
t=/^function ([^( ]+)/.exec(this.constructor.toString());
return t?t[1]:null;
};
a=[1, 2, 3];
alert(a.getType());
"Limitation" de l'utilisation de constructor : quand on définit une instance
d'objet dont le constructeur est une fonction définie en JS, constructor renvoie
la fonction et non l'objet Object. C'est un comportement logique dans la mesure
où Object est l'ancêtre de tout objet JS, y compris Array, Number, etc.
c'est bizarre que ca n'ai pas été inclus dans le language que par typeof avec lequel il faut lever des ambiguités...
Il y a aussi prototype.constructor Par ex. : Object.prototype.getType=function(){ t=/^function ([^( ]+)/.exec(this.constructor.toString()); return t?t[1]:null; };
a=[1, 2, 3]; alert(a.getType());
"Limitation" de l'utilisation de constructor : quand on définit une instance d'objet dont le constructeur est une fonction définie en JS, constructor renvoie la fonction et non l'objet Object. C'est un comportement logique dans la mesure où Object est l'ancêtre de tout objet JS, y compris Array, Number, etc.
HTH -- Y.D.
YD
je souhaite ajouter la propriété isEmpty à l'objet Array, je fais ça comme ça : mais je souhaite que isEmpty soit une propriété plutôt qu'une méthode...
je ne pige pas où est le problème...
De deux choses l'une : - tu dois à toute modification sur l'objet mettre à jour cette propriété - au moment de l'appel calculer son état
Tu peux utiliser la 1e possibilité si tu maîtrises complètement l'objet, sur les objets natifs c'est exclu. La deuxième suppose l'appel à une méthode interne pour répondre à la demande de la propriété. C'est une possibilité qui existe dans le JS Netscape/Mozilla depuis la version 1.5, les getter et setter. Ça semble correspondre à ce que tu souhaites obtenir. Voir :
je souhaite ajouter la propriété isEmpty à l'objet Array, je fais ça
comme ça :
mais je souhaite que isEmpty soit une propriété plutôt qu'une méthode...
je ne pige pas où est le problème...
De deux choses l'une :
- tu dois à toute modification sur l'objet mettre à jour cette propriété
- au moment de l'appel calculer son état
Tu peux utiliser la 1e possibilité si tu maîtrises complètement l'objet,
sur les objets natifs c'est exclu.
La deuxième suppose l'appel à une méthode interne pour répondre à la demande
de la propriété. C'est une possibilité qui existe dans le JS Netscape/Mozilla
depuis la version 1.5, les getter et setter. Ça semble correspondre à ce que
tu souhaites obtenir. Voir :
je souhaite ajouter la propriété isEmpty à l'objet Array, je fais ça comme ça : mais je souhaite que isEmpty soit une propriété plutôt qu'une méthode...
je ne pige pas où est le problème...
De deux choses l'une : - tu dois à toute modification sur l'objet mettre à jour cette propriété - au moment de l'appel calculer son état
Tu peux utiliser la 1e possibilité si tu maîtrises complètement l'objet, sur les objets natifs c'est exclu. La deuxième suppose l'appel à une méthode interne pour répondre à la demande de la propriété. C'est une possibilité qui existe dans le JS Netscape/Mozilla depuis la version 1.5, les getter et setter. Ça semble correspondre à ce que tu souhaites obtenir. Voir :
Tu peux utiliser la 1e possibilité si tu maîtrises complètement l'objet, sur les objets natifs c'est exclu. La deuxième suppose l'appel à une méthode interne pour répondre à la demande de la propriété. C'est une possibilité qui existe dans le JS Netscape/Mozilla depuis la version 1.5, les getter et setter. Ça semble correspondre à ce que tu souhaites obtenir. Voir :
-- oui, oui, merci beaucoup, c'est ça, mais la page ci-dessus me dit "(Il
n'y a pour l'instant aucun texte sur cette page" ??
je ne veux pas maitriser complétement l'objet, cette propériété (et non pas méthode : en java un getter est une méthode, à ma connaissance il n'y a qu'en ruby où ppté et méthode sont "la même chose").
je souhaite donc attribuer cette propriété aux objets js suivants :
Array, Object et String.
je suppose que je trouverais ça sur le site moz en patois )))
-- Une Bévue
YD <No-spam@thank.you.invalid> wrote:
- au moment de l'appel calculer son état
Tu peux utiliser la 1e possibilité si tu maîtrises complètement l'objet,
sur les objets natifs c'est exclu. La deuxième suppose l'appel à une
méthode interne pour répondre à la demande de la propriété. C'est une
possibilité qui existe dans le JS Netscape/Mozilla depuis la version 1.5,
les getter et setter. Ça semble correspondre à ce que tu souhaites
obtenir. Voir :
--
oui, oui, merci beaucoup, c'est ça, mais la page ci-dessus me dit "(Il
n'y a pour l'instant aucun texte sur cette page" ??
je ne veux pas maitriser complétement l'objet, cette propériété (et non
pas méthode : en java un getter est une méthode, à ma connaissance il
n'y a qu'en ruby où ppté et méthode sont "la même chose").
je souhaite donc attribuer cette propriété aux objets js suivants :
Array, Object et String.
je suppose que je trouverais ça sur le site moz en patois )))
Tu peux utiliser la 1e possibilité si tu maîtrises complètement l'objet, sur les objets natifs c'est exclu. La deuxième suppose l'appel à une méthode interne pour répondre à la demande de la propriété. C'est une possibilité qui existe dans le JS Netscape/Mozilla depuis la version 1.5, les getter et setter. Ça semble correspondre à ce que tu souhaites obtenir. Voir :
-- oui, oui, merci beaucoup, c'est ça, mais la page ci-dessus me dit "(Il
n'y a pour l'instant aucun texte sur cette page" ??
je ne veux pas maitriser complétement l'objet, cette propériété (et non pas méthode : en java un getter est une méthode, à ma connaissance il n'y a qu'en ruby où ppté et méthode sont "la même chose").
je souhaite donc attribuer cette propriété aux objets js suivants :
Array, Object et String.
je suppose que je trouverais ça sur le site moz en patois )))
-- Une Bévue
unbewusst.sein
Une Bévue wrote:
oui, oui, merci beaucoup, c'est ça, mais la page ci-dessus me dit "(Il n'y a pour l'instant aucun texte sur cette page" ??
finalement j'ai trouvé cette page en french... -- Une Bévue
Une Bévue <unbewusst.sein@google.com.invalid> wrote:
oui, oui, merci beaucoup, c'est ça, mais la page ci-dessus me dit "(Il
n'y a pour l'instant aucun texte sur cette page" ??
finalement j'ai trouvé cette page en french...
--
Une Bévue
oui, oui, merci beaucoup, c'est ça, mais la page ci-dessus me dit "(Il n'y a pour l'instant aucun texte sur cette page" ??
finalement j'ai trouvé cette page en french... -- Une Bévue
unbewusst.sein
YD wrote:
La deuxième suppose l'appel à une méthode interne pour répondre à la demande de la propriété. C'est une possibilité qui existe dans le JS Netscape/Mozilla depuis la version 1.5, les getter et setter. Ça semble correspondre à ce que tu souhaites obtenir.
[0,1,2].estVide ça me donne undefined -- pas d'erreur
ou :
[0,1,2]estVide() ça me dit que la function estVide() n'existe pas...
dans la page filée en référence sur accesseurs et mutateurs il est question de méthode (comme en java les getters et setters) et non de propriété...
mais le message d'erreur dans le cas estVide() et le undefined dans le cas estVide (qui ne renvoie pas la fonction) semblent vouloir dire que c'est bien une propriété (ou attribut) et non une méthode... -- Une Bévue
YD <No-spam@thank.you.invalid> wrote:
La deuxième suppose l'appel à une méthode interne pour répondre à la demande
de la propriété. C'est une possibilité qui existe dans le JS Netscape/Mozilla
depuis la version 1.5, les getter et setter. Ça semble correspondre à ce que
tu souhaites obtenir.
[0,1,2].estVide ça me donne undefined -- pas d'erreur
ou :
[0,1,2]estVide() ça me dit que la function estVide() n'existe pas...
dans la page filée en référence sur accesseurs et mutateurs il est
question de méthode (comme en java les getters et setters) et non de
propriété...
mais le message d'erreur dans le cas estVide() et le undefined dans le
cas estVide (qui ne renvoie pas la fonction) semblent vouloir dire que
c'est bien une propriété (ou attribut) et non une méthode...
--
Une Bévue
La deuxième suppose l'appel à une méthode interne pour répondre à la demande de la propriété. C'est une possibilité qui existe dans le JS Netscape/Mozilla depuis la version 1.5, les getter et setter. Ça semble correspondre à ce que tu souhaites obtenir.
[0,1,2].estVide ça me donne undefined -- pas d'erreur
ou :
[0,1,2]estVide() ça me dit que la function estVide() n'existe pas...
dans la page filée en référence sur accesseurs et mutateurs il est question de méthode (comme en java les getters et setters) et non de propriété...
mais le message d'erreur dans le cas estVide() et le undefined dans le cas estVide (qui ne renvoie pas la fonction) semblent vouloir dire que c'est bien une propriété (ou attribut) et non une méthode... -- Une Bévue
il y a sans doute une erreur dans la page mozilla, mais ne précise pas si instance on objet.
ce qui marche impec comme je le souhaitais :
Array.prototype.__defineGetter(<même chose>);
est là j'ai bien une ppté et non pas une méthode donc dans la page en français il y a deux erreurs :
les getters et setters ainsi défins ne sont pas des méthodes mais des pptés, comme d'ailleurs le nom d'accesseur et mutateur l'indique, sinon il n'y aurait pas d'intérêt )))
l'autre erreur étant que dans la syntaxe ci-dessus il faut utiliser :
Object.prototype.__blahblah
ensuite je trouve qu'ils ont mal choisi les noms :
__defineGetter__ et __defineSetter__
car n'étant pas des méthodes ce sont des accesseurs/mutateurs ils auraient du choisir, amha :
__defineAccessor__ et __defineMutator__
qui prête moins à confusion...
bon en tk merci beaucoup ça roule et c'est ce qu'il me fallait très exaactement ! -- Une Bévue
Une Bévue <unbewusst.sein@google.com.invalid> wrote:
il y a sans doute une erreur dans la page mozilla, mais ne précise pas
si instance on objet.
ce qui marche impec comme je le souhaitais :
Array.prototype.__defineGetter(<même chose>);
est là j'ai bien une ppté et non pas une méthode donc dans la page en
français il y a deux erreurs :
les getters et setters ainsi défins ne sont pas des méthodes mais des
pptés, comme d'ailleurs le nom d'accesseur et mutateur l'indique, sinon
il n'y aurait pas d'intérêt )))
l'autre erreur étant que dans la syntaxe ci-dessus il faut utiliser :
Object.prototype.__blahblah
ensuite je trouve qu'ils ont mal choisi les noms :
__defineGetter__ et __defineSetter__
car n'étant pas des méthodes ce sont des accesseurs/mutateurs ils
auraient du choisir, amha :
__defineAccessor__ et __defineMutator__
qui prête moins à confusion...
bon en tk merci beaucoup ça roule et c'est ce qu'il me fallait très
exaactement !
--
Une Bévue
il y a sans doute une erreur dans la page mozilla, mais ne précise pas si instance on objet.
ce qui marche impec comme je le souhaitais :
Array.prototype.__defineGetter(<même chose>);
est là j'ai bien une ppté et non pas une méthode donc dans la page en français il y a deux erreurs :
les getters et setters ainsi défins ne sont pas des méthodes mais des pptés, comme d'ailleurs le nom d'accesseur et mutateur l'indique, sinon il n'y aurait pas d'intérêt )))
l'autre erreur étant que dans la syntaxe ci-dessus il faut utiliser :
Object.prototype.__blahblah
ensuite je trouve qu'ils ont mal choisi les noms :
__defineGetter__ et __defineSetter__
car n'étant pas des méthodes ce sont des accesseurs/mutateurs ils auraient du choisir, amha :
__defineAccessor__ et __defineMutator__
qui prête moins à confusion...
bon en tk merci beaucoup ça roule et c'est ce qu'il me fallait très exaactement ! -- Une Bévue