功能导致错误

时间:2014-01-22 17:08:27

标签: javascript node.js

我已经创建了mapWith函数,如下所示:

  var mapWith=function(fn)
{
  return funtion(list)
  {
     return Array.prototype.map.call(list,function(something){
            return fn.call(this,something);
      });
  }
};

我在函数和数组中使用它:

 var insertLatLong=function(obj)
 {
    //inserts to db...
 }
 var inception_cities=[{lat:35.0117,lng:135.7683},
                  {lat:48.8567,lng:2.3508},
                  {lat:-4.0500,lng:39.6667},
                  {lat:33.8600,lng:151.2111},
                  {lat:34.0500,lng:118.2500}];

 var insertLocations=mapWith(insertLatLong);
 insertLocations(inception_cities);

我得到的错误如下:

ReferenceError: list is not defined
at mapWith (/home/anr/Desktop/node js/mysql.js:11:17)
at Object.<anonymous> (/home/anr/Desktop/node js/mysql.js:40:21)

1 个答案:

答案 0 :(得分:1)

导致错误的原因是c中缺少return funtion(list)。没有它,JavaScript认为你想要调用名为funtion的东西。但是你也希望将list传递给它,因为首先评估参数然后你得到ReferenceError:它不知道list是什么。