我有一个简单的方法:
首先我有一个对象,包含位置(在类中定义但在方法之外:
locations = {
Kanaanbadet: {"desc":"Badplats med två stränder. Stor gräsyta. Hopptorn och utomhusdusch. Handikapptoalett finns. Välbesökt bad. Badet är bemannat med fritidsledare måndag till söndag kl 11 – 17 under sommarlovet. Stor parkeringsplats finns på gångavstånd, cirka 5 minuters promenad.","name":"Kanaanbadet","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d14b313cb2b2f45e380eb88156c95b539","_cached_page_id":"4b71e342c82be9de1c74de3c2f57ea1c4dde8150","long":"17.85448","lat":"59.34966","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=cf0a856830e4422cb55dcd60e8e6b40b"},
Johannelundsbadet:{"desc":"Liten badplats med liten sandstrand och stor gräsyta. Gungdjur, parksoffor och bord, torrklosett.","name":"Johannelundsbadet","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d3e4c2056b5534cfc9b0799e2377b8ce4","_cached_page_id":"18cf34222d74612979afd945a925abc0bf16e44d","long":"17.98914","lat":"59.34098","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=ebf8d49780224e908064551c35dbcca4"},
StoraEssingestrandbad:{"desc":"Stora Essingebadet även kallat Oxhålsbadet har en brygga men ingen sandstrand. Det finns gräsytor och en gångstig utmed vattnet.","name":"Stora Essinge strandbad","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3dfa43f4052b2d44368ef6c671f3ab8d31","_cached_page_id":"b7532ce7a03a6f12e7c3172c9572faef859c1665","long":"17.98444","lat":"59.32205","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=4453d2336c1a4b7eabaee2372b3f0343"},
Lovstabadet:{"desc":"Är ett mindre men ändå populärt strandbad med beachvolleybollplan och gungor. Här finns två grillplatser. Badet är bemannat med fritidsledare måndag till söndag kl 11 – 17 under sommarlovet. Begränsat antal p-platser. En brant grusväg leder ner till vattnet.","name":"Lövstabadet","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d1a0294ab97de4f6a96f7295081765c22","_cached_page_id":"6bfbe58340c408315a1eca635020b4127bba9bc0","long":"17.78379","lat":"59.38726","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=52b7ed4e3a2a44d788c3b241a091213e"},
LillaEssingestrandbad:{"desc":"Lilla Essingebadet har en brygga men ingen sandstrand. Det finns stora gräsytor och en gångstig utmed vattnet.","name":"Lilla Essinge strandbad","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3db5e5491cc81e49ed8b1ead46ff5d6763","_cached_page_id":"b3babaa5651e37bd6e01586bcbb7a02af29895dd","long":"18.00145","lat":"59.32691","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=cee9e9d385d34029a034f2f57b823d7c"},
Angbybadet:{"desc":"Stor badplats med två sandstränder och stora gräsytor. 2011 gjordes badplatsen mer tillgänglig. Bland annat byggdes två betongramper vid badet så att personer med rullstol/rulator lättare kan ta sig ner till vattnet.","name":"Ängbybadet","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d5649aeb259da4f32a72ac3e9780ddf04","_cached_page_id":"7d0812984f918a19bf31c603e351699481970eb1","long":"17.89954","lat":"59.33594","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=b798fd4e4acf4ea5bb31a2c33c3dd3a7"},
Trekantensstrandbad:{"desc":"Badet ligger vid sjön Trekanten i Liljeholmen. Den omges av bebyggelse och vägar men det finns också fina park- och naturområden runt sjön.","name":"Trekantens strandbad","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d248b8b44f5a747b08e0421ced0511393","_cached_page_id":"31e3e8afca39ed2c814d75abfcf9212f1be6c54d","long":"18.01021","lat":"59.31247","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=407769c9718149a2b620f56fda45f821"},
Langholmensstrandbad:{"desc":"Långholmens strandbad ligger på Långholmen norra del nära Långholmens fängelsemuseum. Gå Långholmsbron och ta Långholmsmuren mot badet.","name":"Långholmens strandbad","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d0be73c475b894a208c136fc01897be82","_cached_page_id":"e9a3899799021efb0223c10fe908db1c1e09ae03","long":"18.02379","lat":"59.32198","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=6b2da8213162477a9fa3888240972025"},
Johannesdalsbadet:{"desc":"Består av en liten sandstrand med vegetation runt om. Papperskorgarna töms varje vecka.","name":"Johannesdalsbadet","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d0e7dee2f68884f959efb59bcfb65014b","_cached_page_id":"23d61e2f2deeeb9ef330004c5f9a677efe7262d4","long":"17.86791","lat":"59.27593","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=17515357866143b3afea960c24e7afb7"},
Malarhojdsbadet:{"desc":"Den här badplatsen vid Mälaren består av sand, gräs och lekytor.","name":"Mälarhöjdsbadet","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d1d833342ce36445d8dddea6cdf83deb3","_cached_page_id":"fff45c3b4c297401b60db155c89762d5cde34494","long":"17.92495","lat":"59.29988","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=8d1befa0e99e4dcf8afcc2174cf4d62d"},
Langholmensklippbad:{"desc":"Klippbad öster om Västerbron. Vid klippbadet finns en livräddningsstation. Toaletter finns vid Långholmens strandbad väster om klippbadet. Vid strandbadet finns även café, glassförsäljning och restaurang samt sevärdheter som Bellmansmuséet och Långholmens fängelsemuseum. Dessutom finns det vackra promenadvägar runt Långholmen.","name":"Långholmens klippbad","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d15142ec10fd2487e854ebdf3714c658c","_cached_page_id":"c704c3db3bad5a53398f8df331fc70d20ce2efbe","long":"18.03373","lat":"59.32291","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=569b2f85c57f48078635f7c05bae16fe"},
Flatenbadetallmanna:{"desc":"Sjön Flaten är en av Stockholms renaste badsjöar. Vid Flatenbadet finns bryggor på flera platser och ett hopptorn. Sommartid finns servering och minigolfbana i anslutning till badet. Fina promenadstigar genom orörd natur leder runt sjön.","name":"Flatenbadet, allmänna","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d469452ce3af649e3a040e26c0b342a33","_cached_page_id":"07ea074cad53cbc98d3a361d700a9aeed6f1b945","long":"18.15919","lat":"59.25289","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=11e3da7a3da34be99090232618853f42"},
Fredhallsbadet:{"desc":"Fredhällsbadet är ett klippbad med bryggor och som är inhägnat av en byggnad och ett plank. Inne på området finns en mindre gräsmatta och ett trädäck. Ned till själva badet leder trappor. Framför entrén finns en mycket liten parkeringsplats för rörelsehindrade. En gångväg går längs stranden. Badet kan också nås via trappa från Snoilskyvägen.","name":"Fredhällsbadet","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3dea712a160eaa46e8a5af8c16b3c1d6b7","_cached_page_id":"9b8410b981b16ffc7c73937b3c217df3477b517c","long":"17.99589","lat":"59.33063","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=c9c7b824b24c4dfeba90978202f59e34"},
Flatenbadetbarnbadet:{"desc":"Sjön Flaten är en av Stockholms renaste badsjöar. Vid Flatenbadet finns bryggor på flera platser och ett hopptorn. Sommartid finns servering och minigolfbana i anslutning till badet. Fina promenadstigar genom orörd natur leder runt sjön.","name":"Flatenbadet, barnbadet","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d3dc47993806a4b818c75e723708f507b","_cached_page_id":"e31546e87c64b0a94554bc7e5f845b3884475f1d","long":"18.15603","lat":"59.25697","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=e0c3f074fb2f4caaa1adf9f02fd83b10"},
Satrabadet:{"desc":"Det här är en badplats vid Mälaren med stora sand- och gräsytor.","name":"Sätrabadet","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d126e32b2add04665940455b242b0a6f7","_cached_page_id":"0bb0e7e2f728d783e73f2867816ad1ec9010f6ae","long":"17.89256","lat":"59.28629","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=574bdc51f68545f2b18ce955bfe8db8e"},
Maltesholmsbadet:{"desc":"Stort strandbad i närheten av Hässelby strands tunnelbanestation. Stor plan gräsyta leder ner till badstranden. På sidan av stranden finns en inhägnad plats med gungor.","name":"Maltesholmsbadet","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d454951b184b0407ba4c8ee4472b77853","_cached_page_id":"8a12fc59495bc9a4efed4c8ff202a5ff2e16bf80","long":"17.83986","lat":"59.35633","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=75a6c485c8a7422585f7b6abc608f5c8"},
Brunnsvikensstrandbad:{"desc":"Brunnsviksbadet är ett allmänt EU-bad som sköts av Stockholms stad gemensamt med Kungliga Djurgårdens förvaltning. Badvattenkvaliteten är klassad som utmärkt. Ledstång finns ner i vattnet. Tunnelbana och Roslagsbana inom 500 m. Gång och cykelväg från Frescati Hagväg","name":"Brunnsvikens strandbad","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d30ff14004e814f6aaa1685d6d90164e1","_cached_page_id":"6ddeea6d1fe7a0c31a214d4bc4c999cf2faf1e57","long":"18.04882","lat":"59.36258","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=723a0b50430b4847a3d79dc3f3d126fb&kontakt=&bildspelsida71365=3"},
StoraSkondalshandikappbadstrandbad:{"desc":"Stora Sköndals friluftscenter och bad är till för dig som har någon form av funktionsnedsättning och behöver extra hjälpmedel. Du är välkommen tillsammans med din familj, annan närstående eller medhjälpare. Badkort för hela säsongen är kostnadsfritt.","name":"Stora Sköndals handikappbad, strandbad","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3dd0aa96cc897b4fc5a4f76a5c20d9a0f2","_cached_page_id":"0c24c2a7940566fa00167ec834b3958d2ad8b0bc","long":"18.12388","lat":"59.24915","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=7d9674ff2a074d128005ea1e5d82bd3b"},
Smedsuddsbadet:{"desc":"Smedsuddsbadet ligger i en vik till Riddarfjärden. Här finns en strand och en stor gräsmatta. Framför entrén finns en liten parkeringsplats. En gångväg går längs stranden.","name":"Smedsuddsbadet","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d9c91b71cd6b54531978fe4a04048799f","_cached_page_id":"6865435ac2b816e01a1820f7956e7b46e17e2f0d","long":"18.02192","lat":"59.32533","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=23f081bdf90a4b1a981f4598d8db171f"},
Farstastrandbad:{"desc":"Farsta strandbad är ett populärt strandbad vid sjön Magelungen i Farsta strand. Hit lockas många besökare såväl under vinterhalvåret som under sommarhalvåret. Här finns ett utegym som bjuder in till träning och lek. Det finns en boulebana och möjlighet att spela volleyboll. Under vintern är det en populär plats att åka skridskor vid.","name":"Farsta strandbad","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d4706fa3b42ca49c7872213fad48e80d6","_cached_page_id":"f1315b6c6efb0eb95e08e8b94d4d0e0b2616a5f1","long":"18.08444","lat":"59.23687","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=34fb78daa45c4c1dbe0593e030cc3c6e"},
Hokarangsbadet:{"desc":"Hökarängsbadet är ett nyligen upprustat strandbad med många möjligheter till bad, lek och olika aktiviteter. Badet är beläget vid sjön Drevviken nära Farsta vård- och omsorgsboende. Här finns utomhusgym för träning och lek. Trevlig plats för picknick och grillning.","name":"Hökarängsbadet","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d8556b7d982864bb18ac261d49d58aa2d","_cached_page_id":"8d8ce9ee0a5fee7c516ef0c689aa470aebce98eb","long":"18.107","lat":"59.24791","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=2016e4c2635740049c1ec34f9f72db4d"},
Hasselbyallmannabad:{"desc":"Ett strandbad med en barnvänlig sandstrand och en betongbrygga. Badet är bemannat med fritidsledare måndag till söndag kl 11 – 17 under sommarlovet. Dåligt med parkeringsmöjligheter. Brant gångväg ner till badet.","name":"Hässelby allmänna bad","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d3295846cb6ec463b93047c772550b0e2","_cached_page_id":"8a91a1860d527d50d954f9abdb16420fb0f71e5d","long":"17.79911","lat":"59.37537","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=192df22ce6544a2683c52c08dbd67a77"},
Langsjobadet:{"desc":"Långsjöbadet är ett allmänt bad som sköts av Stockholms stad. Badet ligger vid Strandängsstigen i stadsdelen Långsjö. Badet har en barnvänlig sandstrand samt stora gräsytor. Här finns också uppbyggda grillplatser.","name":"Långsjöbadet","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d261b63460e4d455aaf8d0990737c27dd","_cached_page_id":"3fc5f580847b16e33ce28956fc2c032dba292f32","long":"17.97459","lat":"59.26527","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=6c8a91e6a8cc472a9ee41aba3678ccb6"},
Tantostrandbad:{"desc":"Strandbad vid Drakenbergsparkens sydvästra ände. Dusch och toaletter finns i anslutning till badet.","name":"Tanto strandbad (Årstaviken)","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d4af09e2f03994b149495996b6fcfe74e","_cached_page_id":"31782cad8fe4a8cfdc7a974b347d4f880cf29376","long":"18.04109","lat":"59.31091","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=03df7e52de2347b1afabca09f265b12b"},
Ekhagensstrandbad:{"desc":"Badet är beläget på Norra Djurgården nära Lappkärrsberget. Det drivs av Kungl. Djurgårdens förvaltning. Mer information: www.royalcourt.se","name":"Ekhagens strandbad","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3df774d2a9e33f4a738be60dd0350fe66f","_cached_page_id":"c4be6a1209aecfb6c5f0a51ac8d8aa0fb47f8588","long":"18.0706","lat":"59.37211","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=11ca84bdac994ea4b35eccb2a4b405e1"},
Solviksbadet:{"desc":"Stor badplats med stor sandstrand och gräsytor. 2 bryggor, gungor och gungdjur, parksoffor, omklädningsrum, dusch och toaletter. Dambadet (nakenbad) med brygga, omklädningsrum, dusch och toalett ligger bredvid. - Motionsanläggning med café är för närvarande stängt. -","name":"Solviksbadet","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3d30d3f6a71df9454a9de05dbd47274033","_cached_page_id":"9d3af03aa683fb3e5aafbedfadd638d8beae70de","long":"17.96617","lat":"59.31512","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=d9390b4dbc79495cbcc642023f0c33a0"},
Skrubbastrandbad:{"desc":"Skrubba strandbad ligger vid Drevviken. Badet rustas upp för att få en bättre tillgänglighet genom att bl.a. parkeringsplatser anläggs, gångväg rustas upp, röjning av träd och sly och uppsättning av sittplatser. Vid badet finns sandstrand och klippor.","name":"Skrubba strandbad","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3defd27470bd9b4c19979149bea3b56b04","_cached_page_id":"ea51ef59632fe88add03e51088d201c3751b6268","long":"18.18405","lat":"59.23424","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=4f8a7f4440e542f3a69231cabe477258"},
Grondalsbrygga:{"name":"Gröndals brygga (Ormberget)","_cached_page_id":"08f7a7751a8c17d46421ff94df1369ae417f4844","long":"18.00786","lat":"59.31842","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=f4a4b9f1b83441fa9c12b73919aa0f68&pdf="},
StoraSkondalshandikappbad:{"desc":"Stora Sköndals handikappbad är endast öppet för personer med funktionsnedsättning. Du är välkommen tillsammans med din familj, annan närstående eller medhjälpare. Badkort för hela säsongen är kostnadsfritt för dig och din medföljare. Har du ingen synlig funktionsnedsättning ska du visa upp läkarintyg första gången. Kortet kvitteras ut hos badvakterna vid badet.","name":"Stora Sköndals handikappbad","image":"http://www.stockholm.se/Web/Core/Pages/Special/StreamServiceGuideImage.aspx?path=%2fWeb%2fCore%2fPages%2fSpecial%2fServiceGuideFile.aspx%3ffileid%3dc7261c8fd2464b649950d0f11b951cc0","_cached_page_id":"f3b7ca09e5369c637b8c1c40ddc5df4ea3fdfa82","long":"18.12388","lat":"59.24915","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=ba0ff39bb0384e4b8ffad126aa16c426"},
Hagerstenshamnen:{"name":"Hägerstenshamnen (Örnsberget)","_cached_page_id":"96c79aa7c1fb6a373742210ea17bdfc6af6173f2","long":"17.98412","lat":"59.31067","url":"http://www.stockholm.se/-/Serviceenhetsdetaljer/?enhet=16c7ea0f802c44fba98906aeb16b50e4&pdf="}
}
getClosest: function(location){
Object.keys(locations).forEach(function(key) {
console.log(locations[key]);
});
}
添加一行:
getClosest: function(){
var locations = locations;
Object.keys(locations).forEach(function(key) {
console.log(locations[key]);
});
}
结果为Object.keys called on non-object
。怎么样?
答案 0 :(得分:3)
因为您的代码中存在拼写错误。
var locations = locations;
应该是
var locations = location;
当您将locations
定义为var locations = locations;
时,会先评估右侧的undefined
(因为它尚未初始化)。因此,undefined
将被分配到locations
。调用Object.keys
后,locations
为undefined
。这就是它抛出错误的原因。
var a = a;
console.log(a);
# undefined
编辑:即使您有一个同名的对象locations
也没关系,在函数外部,函数中的locations
会覆盖它。
JavaScript中的变量的作用域是定义它们的函数(无论你在哪里定义它(可能在开头,中间,末尾),变量都可用于整个函数)。但只要您没有为其指定值,默认情况下它将具有undefined
。有了这个理解,让我们看一下代码
var locations = locations;
JavaScript看到右侧,locations
在此函数中定义。由于locations
尚未分配任何值undefined
。因此,我们基本上将undefined
分配给locations
。