没明白楼主什么意思啊,可否再说明白一些,那个a是那个匿名函数里面的参数吧。怎么能写成a.map(f)呢?

解决方案 »

  1.   


    我看的是js 权威指南  里面8.8.2章 高阶函数 原文是这样的://Return a function that expects an array argument and applies f to each element, returning ths arrat of return values.
    //Contrast this with the map() function from earlier.
    function mapper(f)
    {
        return function(a){ return map(a,f);}; 
    }
     
    var increment = function(x){return x+1;};
    var incrementer = mapper(increment);
     
    incremener([1,2,3])  //==>[2,3,4]map() 方法是数组方法 
    用法如 
    var arr=[1,2,3,4,5];
    var arr1 = arr.map(function(x){return x+1;}); //得到[2,3,4,5,6]
      

  2.   

    上面有个地方打错了  incremener([1,2,3])  改成 incrementer([1,2,3])
      

  3.   

    还是仵龙堂,你的map那里冒出来的。我也知道array有个map方法。
      

  4.   


    明白了 谢谢你的指点 在前面章节重新定义了map方法  找了下找到了
    var map =Array.prototype.map
    ?function(a,f){return a.map(f);}
    :function(a,f)
    {
    var results =[];
    for(var i=0,len=a.len;i++)
    {
    if(i in a) results[i] =f.call(null,a[i],i,a);
    }
    return results;
    };