前提
静的なHPを作っています
swiperやcolorboxなどの複数の外部jsファイルを読み込んでいます
そしてcommon.jsというファイルの中に自作関数を作っています
###質問
common.jsの中でグローバル変数は使用しないように関数の中に入れて使っていますが、
関数自体がグローバルになってしまっていることは問題ないのでしょうか?
javascript
1 2$(function () { 3 hoge();//hogeという関数名がグローバルになってしまっている? 4}); 5 6function hoge(){ //グローバルな関数 7 var hogeLocal = 'hoge'; //ローカルな変数 8 return hogeLocal; 9}
例えば以下のように
accordion、spNav、deviceJudgeという関数名がグローバルになることを防ぐために、
common.js中を即時関数で囲んだほうがいいのでしょうか?
javascript
1(function(){//ここで即時関数で囲う必要があるのでしょうか? 2 3 $(function () { 4 accordion(); 5 spNav(); 6 deviceJudge(); 7 }); 8 9 function accordion(){ 10 //アコーディオン 11 var $accordion = $('.accordion'); 12 $accordion.on("click", function() { 13 $(this).next().slideToggle(); 14 }); 15 } 16 17 function spNav(){ 18 //スマホナビの開閉 19 var $spNavBtn= $('.sp-nav-btn'); 20 $accordion.on("click", function() { 21 $('body').addClass('is-open'); 22 }); 23 } 24 25 function deviceJudge(){ 26 //デバイス判定 27 if (navigator.userAgent.match(/(iPhone|iPod|Android.*Mobile)/i)) { 28 return 'SP'; 29 } else { 30 return 'PC'; 31 } 32 } 33 34}());

回答2件
あなたの回答
tips
プレビュー