例えば、以下の様な関数を作る場合var Circle
を重複させないためにarea+Circleの様なユニークな変数を作ろうと直感的に考えます。下記の例で言えば、目黒区以外に他に22区もあるのでこれをfunctionにして使いまわそうと考えています。
javascript
1function circleDraw(latlng,area,jpn,scale,color){ 2 var area+Circle = L.circle(latlng, scale,{ 3 color: 'color', 4 weight: 1, 5 opacity: 0.8, 6 fillColor: 'color', 7 fillOpacity: 0.3 8 }).bindPopup("<span>"+jpn+"</span>"); 9 10 11 $('input[name="'+area+'"]').on('click', function() { 12 if($(this).prop('checked') == true){ 13 area+Circle.addTo(map); //このために独自の変数が必要 14 }else if($(this).prop('checked') == false){ 15 map.removeLayer(area+Circle); //このために独自の変数が必要 16 } 17 }) 18} 19circleDraw([35.62185988960938,139.6867664113381],"meguro","目黒区",5000,"#00b2ff");
もちろん、JSではvar area+Circle
の様な方法は当然認められず、Uncaught SyntaxError: Unexpected token '+'
がdebugで出力されます。
この様に可変変数を使おうと思った場合、まず思いつくのがevalであると思うのですが、当然MDNのリファレンスでも使うべきではないと言及されているので、他の方法を考えるのですが、上記の様な場合で使い回す方法としてどうしてもeval()意外に方法が思いつかないのですが、実務で慣れている場合にはどの様なアイデアで対応されるのが一般的なのでしょうか?
よろしくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/23 15:47
2020/10/23 16:02 編集
2020/10/23 16:17 編集
2020/10/23 16:24
2020/10/23 16:37