1

我有以下来自 javascript 书籍的代码,回调似乎是作为参数传递的表达式。是这样还是我看错了?我不知道,即使它有效,那是可能的。

function multiplybytwo(a,b,c,callback)  {
  var i, ar =[];
  for(i=0;i<3;i++)  
  {
    ar[i] = callback(arguments[i]*2);  
  }
  return ar;  
}  

function addone(a)  {
  return a+1;  
} 

myarr =multiplybytwo(1,2,3,addone);
4

3 回答 3

1
callback(arguments[i]*2); 

相当于

var a = arguments[i]*2;
callback(a);

callback(1+2);_callback(3);

于 2012-12-17T00:08:32.400 回答
0

回调传递了该表达式的结果。

于 2012-12-17T00:05:53.527 回答
0

参数在传递给函数之前进行评估。

function foo( a ) {
    alert( a );
}

function bar( ) {
    return 1;
}

foo( bar( ) );

上面的(演示)将显示 1。

于 2012-12-17T00:15:14.660 回答