0

私はwhileこれのためにループを書くことができることを知っています..

次のように渡す方法を知りたいだけですargument

   function i(a,z){

      for (a; a<2; z){

          //do something...

      }
   }

私は試した

    i(0,a++);
    i(0,'a++');
    i(0,a=a+1);


    var z = "a= a+1";
    i(0,z);

そしてすべてがうまくいきませんでした。


[更新]

関数を次のように変更できることを知っています

   function i(a,z){

      for (a; a<2; a=a+z){

          //do something...

      }
   }

それから

  i(0,1);

しかし、ここで知りたいのはa=a+z、関数を変更せずにそれを引数として渡す方法です...

4

3 に答える 3

4

多分あなたはこの変種が欲しいですか?

function i(start, end, delta){

      for (var i = start; i<end; i += delta) {

          //do something...

      }
}

これを使ってi(0, 10, 1)

于 2012-05-09T09:14:10.657 に答える
0

正しく理解しているかどうかはわかりませんが、次のようなものが必要になると思います。

function i(a, z){
    for (a; a < 2; a = z(a)){
        //do something...
    }
}

次に、次のように呼び出します。

i(0, function(a) { 
     a++; 
     return a;
});

for の最後の部分が関数であることを除いて、これはあなたが持っているものと非常に似ていることに注意してください。

于 2012-05-09T09:16:02.123 に答える
0
function i(o){
    for (; o.a<2; o.z()){
        //do something...
        console.log('x');
    }
}
var o = {
    a:0, 
    z:function(o) {
        this.a++
    }
};

i(o);
于 2012-05-09T09:24:51.103 に答える