スコープがあるがアクセスしたい場合わかりやすい方法はないでしょうか?
下記stageNumDefaultのような場合は関数でないので引数が使えません。
このような場合はどうしますか?
(() => { let stageNumDefault = 0; const startBtn = document.getElementById('js-start-btn'); startBtn.addEventListener('click', ()=> { let stageNum = ++stageNumDefault; }); let nowStage = `stage${stageNum + 1}`; })();
またこちらの質問は下記の続きなのですが、私の追加コメントについてもお答えいただければありがたいです。
https://teratail.com/
>>>
let Position = () => {
var mathRandom = Math.random();
createElement.style.top = (mathRandom * 100) + '%';
}
じょうきのようになるという事でしょうか?
引数を使えば参照したい先に仮引数を書けばその中の式からアクセスできるようになるので、
スコープの問題がなくなるという事でしょうか?
spablock
spablock
2017/05/04 16:02
let Position = mathRandom => {
createElement.style.top = (mathRandom * 100) + '%';
}
はES6のアローファンクションで仮引数をmathRandomにしたという事でよろしいでしょうか?
function(mathRandom) {}
という事ですね。
spablock
spablock
2017/05/04 16:10
ありがとうございました。確かにできました。
引数は実質下記と同じと聞いていたので、なんのために存在するのかがわからなかったのですが、
別スコープから参照したい時にローカル変数を作るのではなく、引数を利用すると別スコープからも参照できるので、このような場合にローカル変数ではなく引数にする意味があるのですね。
let Position = () => {
var mathRandom = Math.random();
createElement.style.top = (mathRandom * 100) + '%';
}