2014-01-22 166 views
0

我已经创建了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) 
+2

你的'return funtion(list)'中有'c'丢失。 – freakish

+0

我脸上的表情是无价的。 – vamsiampolu

回答

1

该错误是由于在return funtion(list)中缺少c而导致的。没有它,JavaScript认为你想打电话给名字funtion。但是你也想通过list它,因为参数首先被评估,那么你得到ReferenceError:它不知道list是什么。