OVH Cloud OVH Cloud

for...in

24 réponses
Avatar
loiseauthierry
Salut,

Je souhaiterais pouvoir lister en JS l'état des variables déclarées.

Je suppose qu'il me faut utiliser un for...in mais je ne sais plus
comment manipuler ça :-(((

Vous avez une piste pour moi ?

Thierry
--
4 "Il y a 10 sortes de personnes sur Terre : ceux qui connaissent
3 le système et savent compter et ceux qui ne savent pas compter"
2
1....'....12.....'....24.....'....36.....'....48.....'....60.....'....72

4 réponses

1 2 3
Avatar
zwetan

Dès que je vois écrit 'prototype' dans du JS je lâche la rampe



tu libre de lacher ce que tu veux :)


ainsi dans le tuto clone array :

http://www.burrrn.com/documentation/core2/files/buRRRn/core2/Array-es.html#Array.clone


çà me semble extrémement compliqué juste pour faire :

toto = [1,{a:0,b:1},[2,3],"hello",true];
titi = toto;

qui, à mon idée, suffit amplement puisque :

alert(titi);
ou
alert(titi[1].b);
vérifient bien que le clonage a été effectué.



toto = "hello world";
titi = toto; //copie par valeur car toto est une primitive

toto = new String( "hello world" );
titi = toto; //copie par reference car toto est un objet


l'assignation avec = ne garantie pas une copie que par reference ou que par
valeur
cela depends de ce qui est assigné

avoir des methodes comme clone() et copy() permet
de mieux signifier si on veut faire une copie par reference (clone) ou par
valeur(copy)

si une array mixte des primitives et des objets
les copies des elements de l'array sont mixtes

c'est amha pratique de pouvoir "forcer" une copie par valeur sur tous les
elements de l'array

l'implementation est peut-etre compliquée mais l'usage du code reste simple
non ?

zwetan

Avatar
zwetan

Le problème est qu'il va falloir commencer par le B A BA
ie : les prototypes et constructeurs je n'ai jamais employé
dès la 2ième ligne je suis perdu ....


oui mais c'est parce que tu veux comprendre le code plutot que de l'utiliser
ce n'est pas un mal je te rassure :)

mais basiquement quand tu utilises les core objects

toto = "hello world";
totobig = toto.toUpperCase()

tu utilises deja des methodes definis dans le prototype

rajouter en surcouche core2 c'est simplement ajouter
plus de methodes utilitaires qui permettent de gagner du temps

titi = " hello world ";
titiClean = titi.trim();

alors oui la documentation n'est surement pas complete tel quel
mais en soit tu n'as pas vraiment besoin de comprendre le code de
core2 pour pouvoir utiliser les fonctionnalités qu'il ajoute

mais je prends note de ta remarque, je suis en train de psner
a un systeme mi-tutorial/mi-discussion pour justement
parler du B A BA en francais


s'il faut tout remonter depuis la fin pour essayer,
à la relecture, comprendre ce qu'on a voulu faire ...
je préfère encore une suite de fonctions basiques
et explicites (bien francisées) .



les fonctions sont tres basiques
(on retrouve les meme en Java et .NET)
et le choix qu'elles ne soient pas francisées
c'est pour rester coherent avec ce qui existe deja

avoir des nom de methodes en francais a cote de nom de methodes en anglais
cela ferait bizarre non ?

zwetan

Avatar
ASM

alors oui la documentation n'est surement pas complete tel quel
mais en soit tu n'as pas vraiment besoin de comprendre le code de
core2 pour pouvoir utiliser les fonctionnalités qu'il ajoute


non, certes, mais on est ici un peu pour apprendre.

mais je prends note de ta remarque, je suis en train de psner
a un systeme mi-tutorial/mi-discussion pour justement
parler du B A BA en francais


oui, en français c'est mieux
déjà qu'on a du mal à se comprendre dans la langue maternelle ...
quand je tente de m'expliquer en anglais on va d'incompréhensions
en quiprocos bien fatiguants.

les fonctions sont tres basiques
(on retrouve les meme en Java et .NET)


Boudiou! et sans doute des cousines en PHP ...

et le choix qu'elles ne soient pas francisées
c'est pour rester coherent avec ce qui existe deja


C'est à dire ?
Personnellement, je francise toutes mes fonctions et variables
çà me permet d'un coup d'oeuil de ne me pas me mélanger
entre les fonctions du langage et celles particulières
(je me demande comment font les anglicistes pour s'y retrouver
quand ils en sont au stade des apprentissages)

avoir des nom de methodes en francais a cote de nom de methodes en anglais
cela ferait bizarre non ?


j'a n'a pas compris :-)
Ce point de vue pourraît être discuté à l'infini.
Chacun restant sur son quant à soi.

Ce n'est pas très très grâve
si tu mets à dispo une lib il suffit de se la personnaliser soi-même.


--
Stephane Moriaux et son [moins] vieux Mac

Avatar
zwetan
"ASM" wrote:
[snip]

et le choix qu'elles ne soient pas francisées
c'est pour rester coherent avec ce qui existe deja


C'est à dire ?
Personnellement, je francise toutes mes fonctions et variables
çà me permet d'un coup d'oeuil de ne me pas me mélanger
entre les fonctions du langage et celles particulières
(je me demande comment font les anglicistes pour s'y retrouver
quand ils en sont au stade des apprentissages)



core2 en soit est fait pour fusionner avec ce qui existe deja
comme si cela etait definit en natif (meme si ce n'est qu'un rajout)

je comprends qu'on soit plus a l'aise avec sa langue maternelle,
mais garder tout le nommage du code en anglais, meme si c'est un choix,
cela me parrait mieux approprié en terme de cohérence.

[snip]
Ce n'est pas très très grâve
si tu mets à dispo une lib il suffit de se la personnaliser soi-même.



euh si tu veux :)

mais cette lib a de nombreuses inter-dependances avec elle-meme
je ne pense pas que ce soit aussi facile...

ce ne serait pas plus simple d'avoir juste la documentation traduite en
francais ?

zwetan


1 2 3