1

J'ai défini ma fonction JavaScript comme suit:Comment gérez-vous les fonctions JavaScript multi-arguments?

function printCompanyName(company1, company2, company3, company4, company5) 
{ 
document.write("<p>" + company1 + "</p>"); 
document.write("<p>" + company2 + "</p>"); 
document.write("<p>" + company3 + "</p>"); 
document.write("<p>" + company4 + "</p>"); 
document.write("<p>" + company5 + "</p>"); 
} 

Et appelé comme suit:

printCompanyName("Dell, Microsoft, Apple, Gizmodo, Amazon"); 

Mais j'obtenir la sortie suivante:

Dell, Microsoft, Apple, Gizmodo, Amazon 

undefined 

undefined 

undefined 

undefined 

Ce qui donne !? J'ai essayé de comprendre cela pendant des heures. Je veux:

Dell 
Microsoft 
Apple 
Gizmodo 
Amazon 
+0

Que ce soit une leçon pour vous! Ne passez pas plus d'une heure avant (recherche, puis demandez) sur stackoverflow. – ChaosPandion

Répondre

2

Vous voulez appeler:

printCompanyName("Dell", "Microsoft", "Apple", "Gizmodo", "Amazon"); 

La façon dont vous êtes en train de le faire vous passez dans une entreprise "Dell, Microsoft, Apple, Gizmodo, Amazon".

+0

Merci beaucoup! Tu m'as sauvé la vie parce que j'étais sur le point de le prendre! –

1

Essayez ceci:

printCompanyName("Dell", "Microsoft", "Apple", "Gizmodo", "Amazon"); 
3

Vous passer une seule chaîne qui arrive à contenir 4 virgules.
Par conséquent, le premier paramètre contient cette chaîne unique et les 4 autres sont indéfinis. (Sisnce vous avez seulement donné une valeur)
Puisque les paramètres de Javascript sont facultatifs, vous n'obtenez pas une erreur en ne passant pas de valeurs pour les autres paramètres.

Vous devez passer 5 chaînes différentes par des virgules entre eux, comme ceci:

printCompanyName("Dell", "Microsoft", "Apple", "Gizmodo", "Amazon"); 
+1

+1 pour l'explication supplémentaire. – ChaosPandion

0

informations supplémentaires:

Une manière d'utiliser la fonction avec le paramètre comme une virgule de chaîne séparés:

function printCompanyName(names) 
{ 
    // also check the type of names (you know "if it is a string object") 

    var data = names.split(',');  
    for(var i in data) { 
     document.write("<p>" + data[i].trim() + "</p>"); 
    } 
} 

exemple: printCompanyName("Dell, Microsoft, Apple, Gizmodo, Amazon");

Sinon, une fonction de paramètres multiples en utilisant les arguments interne var :

function printCompanyName() 
{ 
    for(var i in arguments) { 
     document.write("<p>" + arguments[i] + "</p>"); 
    } 
} 

exemple: printCompanyName('Dell', 'Microsoft', 'Apple', 'Gizmodo', 'Amazon'); comme Slaks dit.