17. スコープ
二種類しかないよ
var globar = 'global desu';
!
function scope1() {
var locar = 'local desu';
console.log(globar); // global desu
function scope2() {
var locarSecond = 'local mark2 desu';
console.log(locar); // local desu
}
console.log(locarSecond); // ReferenceError: locarSecond
is not defined
}
console.log(locar); // ReferenceError: locar is not
defined
18. スコープ
応用テクニック
(function() {
var locar = 'local desu';
window.globar = 'global desu';
})();
console.log(locar); // ReferenceError: locar is not
defined
console.log(globar); // global desu
グローバル汚染を防ぐため、ほんとに最低限の作法。
モダンJSにおいてはモジュール化の手法を学ぶべし。
27. 復習:スコープ
var globar = 'global desu';
!
function scope1() {
var locar = 'local desu';
console.log(globar); // global desu
function scope2() {
var locarSecond = 'local mark2 desu';
console.log(locar); // local desu
}
console.log(locarSecond); // ReferenceError:
locarSecond is not defined
}
console.log(locar); // ReferenceError: locar is not
defined
28. 復習:スコープ
var staticScope = (function () {
var locar = 'local desu';
var innerEnvironment = function () {
return locar;
};
return innerEnvironment;
})();
!
console.log(staticScope()); // local desu
console.log(staticScope()); // local desu
参照した変数が生き続ける