Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# proprieté non enumerable

Envoyé par : hhf

Date : 09/04/2006 20:26

petite question pour laurentj qui decidement m'aura rendu tres modeste...

dans un precedent post, tu m'expliquais la syntaxe :

get prop {}

maintenant j'aimerais savoir si tu a le secret pour pouvoir rendre une propriete non enumerable. J'explique.

Dans mon application, j'ai mis en place un certain nombre d'utilitaires, où j'essaye de reprendre la syntaxe JAVA du style :

String.prototype.equals(str) {}

ou

String.prototype.equalsIgnoreCase(str) {}

Enfin tu vois le genre... Et entre autre, j'ai mis en place un system de log à l'instar du package java.util.logging de JAVA. Pour cela j'ai rajouté les methode et proprieté suivante à Object :

_log
getLog()
setLog()

Le probleme, c'est que maintenant tous les scripts qui utilisent :

for(prop in obj) {
}

se retrouve avec de nouvelles proprietés : (_log, getLog, setLog) de sorte que certains scripts remontent une erreur dut au fait qu'ils essayent de faire une action sur une propriété non attendu : exemple dans tree.xml. Bien sûr la solution est de faire :

for(prop in obj) {
 if(obj.hasOwnProperties(prop) {
 }
}

Mais je ne peux que espérer que les prochaine version de firefox soit modifié de la sorte. (J'ai neanmoins remonté le bug via bugzilla).

Enfin dans Ecmascript, il y a une methode qui permet de savoir si une propriété est enumerable 'propertyIsEnumerable' ma question est donc comment rend t'on une propriete non enumerable.

Merci d'avance et merci de m'avoir lu jusqu'au bout.

# Re: proprieté non enumerable

Envoyé par : laurentj

Date : 10/04/2006 10:21

Je ne pense pas que cela soit possible..

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.