2014-01-22 198 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是什麼。