[JavaScript] varによる変数定義は右辺実行より先
2012年2月3日
何のこと?
var で変数宣言すると右側から参照できるということで
つまりはこーゆーことです
つまりはこーゆーことです
window.iExisted = ('iExisted' in window); //-> window.iExisted は false
var iExisted = ('iExisted' in window); //-> iExisted は true
var isU = ('isU' in window && window.isU === undefined); //-> isU は true
だから、良く見かける以下のコードが有効なんすね
var timerId = setInterval(function(){
clearInterval(timerId);
}, 1000);
これで気づきました
var MyClass = (function(){
// 自分が既に読み込まれていたらアラートする意図
// これは毎回アラートされちゃうダメな例
if ('MyClass' in window) {
alert('MyClass is already defined');
return;
}
var cls = function(){};
// ... some processing ...
retrun cls;
// returnで返すのはやめて↓の方が良い
//window['MyClass'] = cls;
})();
という、イマサラ話