> Tous les forums > Forum Autres langages
 Fonction Java Script
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
persia
  Posté le 13/01/2007 @ 03:19 
Aller en bas de la page 
Petit astucien

Bonjour ,

Pourquoi on ne pourrait faire la chose suivante en javascript? :

<SCRIPT language="Javascript">
<!--

for (i=1; i<3 ; i++){
function test"+i+"(){
document.write('salut"+i+"');
}
}

test1(); // J'appele la fonction test1, donc "salut 1"
test2(); // J'appele la fonction test2, donc "salut 2"
// -->
</SCRIPT>

J'espère que vous comprenez ce que je veux faire

On m'a suggéré la fonction eval(), ca fonctionne, mais ca cause pleins de problèmes

quand je veux ajouter du code.

Si vous avez une autre solution, je suis preneur.

Merci

Publicité
breizhbugs
 Posté le 13/01/2007 à 11:25 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Aucun language de programmation ne permet ce genre de declaration de fonction tout simplement. Pourquoi? precisement j'en sais rien mais on pou supposer que c'est peu lisible, parce qu'il n'y a aucun interet a faire x functions qui ont exactement le meme code...

Je connais pas trop le javascript, mais c'est tres facile de modifier ton programme pour qu'il donne le meme resultat:

//<SCRIPT language="Javascript">
//<!--

//function test(var i){
//document.write('salut"+i+"');
//}

//test(1); // J'appele la fonction test1, donc "salut 1"
//test(2); // J'appele la fonction test2, donc "salut 2"
// -->
//</SCRIPT>



Modifié par breizhbugs le 13/01/2007 11:30
persia
 Posté le 13/01/2007 à 13:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
breizhbugs a écrit :

Bonjour,

Aucun language de programmation ne permet ce genre de declaration de fonction tout simplement. Pourquoi? precisement j'en sais rien mais on pou supposer que c'est peu lisible, parce qu'il n'y a aucun interet a faire x functions qui ont exactement le meme code...

Je connais pas trop le javascript, mais c'est tres facile de modifier ton programme pour qu'il donne le meme resultat:

//

Justement, le javascript le permet avec la fonction eval(), mais moi je ne veux pas utiliser le eval().

Pour ce qui est de ton code, il ne fonctionne pas, est-ce que tu la tester?

Merci




Modifié par persia le 13/01/2007 13:45
breizhbugs
 Posté le 13/01/2007 à 14:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Pas tester, je connais pas trop le js donc voila c'est juste l'idee.

C'est quoi ton histoire d'eval?

EDIT: ca ca marche: (enleve les 2 premiers // a chaque lignes)

//<SCRIPT language="Javascript">
//<!--

//function test(i){
//document.write('salut'+i+' ');
//}

t//est(1); // J'appele la fonction test1, donc "salut 1"
//test(2); // J'appele la fonction test2, donc "salut 2"
////-->
//</SCRIPT>



Modifié par breizhbugs le 13/01/2007 14:19
persia
 Posté le 14/01/2007 à 00:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
persia a écrit :

breizhbugs a écrit :

Pas tester, je connais pas trop le js donc voila c'est juste l'idee.

C'est quoi ton histoire d'eval?

EDIT: ca ca marche: (enleve les 2 premiers // a chaque lignes)

//

Voici mon histoire du eval():

Avec la eval(), on peut évaluer une chaine de caractère comme un script.

Je l'ai utilisé dans mon code, ca marche, mais il faut s'assurer que la chaine

de caractère qu'on passe à eval doit toujours rester sur la même ligne dans le code

html,sinon le code ne fonctionne plus , et je trouve que c'est pas mal chiant.

Voilà


persia
 Posté le 14/01/2007 à 00:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

<SCRIPT language="Javascript">
<!--

function test(i){
document.write('salut'+i+' ');
}

test(1); // J'appele la fonction test1, donc "salut 1"
test(2); // J'appele la fonction test2, donc "salut 2"

-->
</SCRIPT>

Le code fonctionne seulement si j'ai des chiffres que

je passe en paramètre aux fonctions ex :"test(1)",

moi je voulais plutôt faire : test1() et non test(1).

Merci

koala01
 Posté le 14/01/2007 à 16:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Salut,

Le problème se situe, principalement, au niveau "processeur"...

Comme tout finit, à un moment ou un autre, par etre gérer par le processeur (en ce qui concerne, du moins, l'appel des fonctions), je suis désolé, mais, si tu veux une explication complete... il faudra une base qui te permette de comprendre [langue].

En gros, au niveau de la mémoire et du processeur, tout est transformé en binaire (une succession relativement écoeurante de 0 et de 1)

Il faut favoir qu'à ce niveau, il n'y a plus rien qui différencie une instruction que le processeur doit effectuer d'une donnée qu'il doit utiliser.

La seule chose, c'est que, quelque part dans le processeur, tu as la valeur de l'adresse mémoire à laquelle il *devrait* trouver l'instruction suivante (parce qu'il sait pour chaque instruction combien de bits doivent etre lus comme "données" apres avoir lu l'instruction)

L'astuce, c'est que, quand on appelle une fonction, au niveau du processeur, on va lui dire d'effectuer certaines actions (typiquement, placer la valeur des registres, des flags et du pointeur courant dans sa pile) puis de "sauter" à l'adresse à laquelle la fonction commence.

Le corrolaire, c'est que le nom d'une fonction n'a du sens... que pour l'humain, et n'en a strictement aucun pout l'ordinateur.

Si, en tant qu'humain, tu peux dire que ton nom de fonction c'est la concaténation de ma et de fonction, il est strictement impossible de trouver un moyen pour "traduire" ma+fonction en une adresse à laquelle trouver le début de la fonction pour l'ordinateur...

Ou alors, il s'agit de travailler directement en "code machine" et de lui dire qu'il devra ajouter la valeur qu'il trouve à tel endroit à celle qui se trouve à tel autre endroit pour obtenir l'adresse à laquelle se trouve le début de la fonction (le tout en espérant qu'aucune souris n'ai rongé les cables, sous peine de provoquer des catastrophes [langue])

Par contre, grace au passage de parametre et aux structures de test, il est possible de choisir la fonction qui sera appelée

exemple

function mafonct()
{
for(i=0;i<10;i++)
{
// on appelle fonct1 chaque fois que c'est pair et fonct2 chaque fois que c'est impaire
if(i%2==0)
fonct1();
else
fonct2()
}
}

function fonct1()
{
document.write('salut1"');
}
function font2
{
document.write('salut1"');
}

persia
 Posté le 15/01/2007 à 19:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci Koala, mais j'ai trouvé un truc avec php.




Modifié par persia le 15/01/2007 19:10
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
389,99 €Trottinette électrique Xiaomi Mi Pro 2 à 389,99 € avec le code TRENTEEUROS
Valable jusqu'au 29 Janvier

Cdiscount fait une promotion sur la trottinette électrique Xiaomi Mi Pro 2 à 389,99 € avec le code promo TRENTEEUROS. Le meilleur rapport qualité / prix du marché. On la trouve habituellement à 499 €. Elle offre une autonomie de 45 km et une vitesse max de 25 km/h.Elle comporte une béquille, des lumières LED avant, à l'arrière et au freinage, un frein à disque et est étanche IP54. Supporte 100 kg. La livraison est gratuite.


> Voir l'offre
294,96 €Mini PC T-BAO TBOOK MN27 (Ryzen 7 2700U, 16Go RAM, 512Go SSD NVME) à 298,48 € avec le code BGSPTB27
Valable jusqu'au 29 Janvier

Banggood propose actuellement le mini PC T-BAO TBOOK MN27 à 298,48 € (avec livraison et assurance comprises) avec le code promo BGSPTB27. Ce mini PC au format NUC d'Intel possède un processeur Ryzen 7 2700U avec chip graphique Vega 10, 16 Go de RAM DDR4 et un SSD NVME de 512 Go. Il dispose d'une connectique complète : un emplacement 2,5 pouces libre (pour ajouter un disque dur ou un SSD supplémentaire, le WiFi5, le bluetooth 4.1, 4 ports USB 3.0, 2 ports USB 2.0, un port HDMI 2.0, un DisplayPort, un port Ethernet Gigabit et tourne sous Windows 10 que vous pourrez mettre en français. Ce mini PC fait 12,8 x 12,8 x 5 cm et pèse 1,2 kg. Il est livré avec une alimentation européenne. Branchez ce mini PC sur une TV ou un écran et vous avez un ordinateur discret et performant.

Ce marchand sérieux se trouvant en Chine, la livraison peut prendre une vingtaine de jours. Vous pouvez payer par carte bancaire ou par Paypal (conseillé pour bénéficier de la garantie Paypal).


> Voir l'offre
SOLDESLes soldes d'hiver 2021
Valable jusqu'au 16 Février

Les soldes commencent ce Mercredi 20 Janvier dans la plupart des départements Retrouvez ici la liste des pages dédiées à cet évènement chez les différents revendeurs high-tech afin de trouver la bonne affaire qui vous intéresse. Nous vous proposerons aussi les bons plans que nous aurons dénichés.


> Voir l'offre

Sujets relatifs
Erreur java script
erreur a l'instalation de java script sous vista
script java avec foxmail
Comment mettre un temps dans un Script
Classer une arraylist (java)
Ameliorer le Main "Java" avec les fonctions & procédures
Comment exclure 0 dans une fonction
Rafraichir un tableau en java
Calcul du jour d'après - - > java
Script PHP, listant dossier et fichiers et se connectant a une BDD
Plus de sujets relatifs à Fonction Java Script
 > Tous les forums > Forum Autres langages