1

我已将我的 JavaScript 函数定义如下:

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>");
}

并将其称为如下:

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

但我得到以下输出:

Dell, Microsoft, Apple, Gizmodo, Amazon

undefined

undefined

undefined

undefined

是什么赋予了!?我一直试图弄清楚这一点。我想:

Dell
Microsoft
Apple
Gizmodo
Amazon
4

4 回答 4

3

您正在传递一个恰好包含 4 个逗号的字符串。
因此,第一个参数包含该单个字符串,而其他 4 个未定义。(因为您只给了一个值)
由于 Javascript 参数是可选的,因此您不会因为不为其他参数传递值而得到错误。

您需要传递 5 个不同的字符串,它们之间用逗号分隔,如下所示:

printCompanyName("Dell", "Microsoft", "Apple", "Gizmodo", "Amazon");
于 2010-02-08T02:35:28.137 回答
2

你想打电话:

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

你目前的做法是通过一家公司“戴尔、微软、苹果、Gizmodo、亚马逊”。

于 2010-02-08T02:35:36.293 回答
1

试试这个:

printCompanyName("Dell", "Microsoft", "Apple", "Gizmodo", "Amazon");
于 2010-02-08T02:34:08.140 回答
0

附加信息:

一种将函数与参数作为逗号分隔的字符串使用的方法:

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>");  
    }
}

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

否则,使用内部参数 var 的多参数函数:

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

示例:printCompanyName('Dell', 'Microsoft', 'Apple', 'Gizmodo', 'Amazon');就像 SLaks 所说的那样。

于 2014-03-06T01:51:57.587 回答