2

私は以下を理解する方法についてあなたの助けが必要です:

AddSub#と呼ばれ​​る次の関数を使用して、string#と呼ばれ​​る変数をメインのadd関数(AddAll)に渡します。

function AddSub1()
{       string11 = '11';
        string12= '12';
        string13= '13';
        AddAll(string11, string12, string13);
}

function AddSub2()
{       string21 = '21';
        string22= '22';
        string23= '23';
        AddAll(string21, string22, string23);
}

しかし、私がそうする場合:

function AddAll(string11, string12, string13, string21, string22, string23){
    document.write(string11);
    document.write(string12);
    document.write(string13);
    document.write(string21);
    document.write(string22);
    document.write(string23);
}

そして、関数AddSub1を呼び出します。次のようになります。1112 13 undefined undefined undefined

次に、AddSub2を呼び出すと、次のようになります。21 22 23 undefined undefined undefined

11 12 13 21 22 23を取得できるように、変数をAddAll関数に適切に渡すにはどうすればよいですか?

どうもありがとう!

4

4 に答える 4

3

関数に渡される引数に対応する配列のようなオブジェクトである引数を使用する必要があります。

function AddAll(){
    var args = arguments; // arguments will give you an array 
                          // of all passed arguments to this function

    // here I keep just a reference in args, 
    // you can also use argumetns itself directly                              

    // To retrieve those arguements use this

    document.write(args[0]);
    document.write(args[1]); // ...etc

    // You can also make a loop over arguments

    for (var i = 1; i < arguments.length; i++) {
      document.write(arguments[i]);
    }
}

引数についてもっと読む

ノート:

  • グローバル変数を不必要に使用しないでください
  • 引数をAddAll()asに渡す必要はなく、分離するArrayだけですcomma(,)
于 2012-05-25T10:24:24.117 に答える
0

文字列の配列を受け取るように関数を変更できます。

function AddAll(strings) {
    for (var i = 0; i < strings.length; i++) {
        document.write(strings[i]);
    }
}

AddAll(["hello", "world"]);

または、例のコードを使用するには:

function AddSub2() {       
    string21 = '21';
    string22= '22';
    string23= '23';
    AddAll([string21, string22, string23]);
}
于 2012-05-25T10:29:07.800 に答える
0

@thecodeparadoxによる回答の修正版を使用します

function AddAll(){
var args = arguments; // arguments will give you an array 

for(var i=0,j=args.length;i<j;i++)
document.write(args[i]);

}

そうすれば、関数に渡す文字列の数に関係なく、すべての文字列が書き込まれます。

あなたの質問から、この関数には複数の反復があるようです。

于 2012-05-25T10:32:26.203 に答える
-1

グローバル変数を使用できます。

var string11,string12,string13,string21,string22,string23;

function AddSub1()
{       
    string11= '11';
    string12= '12';
    string13= '13';
}

function AddSub2()
{   
    string21= '21';
    string22= '22';
    string23= '23';
}

function AddAll(){
    document.write(string11);
    document.write(string12);
    document.write(string13);
    document.write(string21);
    document.write(string22);
    document.write(string23);
}

そして、あなたは電話します:

AddSub1();
AddSub2();
AddAll();
于 2012-05-25T10:29:22.290 に答える