一人暮し
 

   一人暮らしのインテリア、ひとり暮らしのために


 
 

買い物するなら日本一のショッピングモール【楽天】
 暮らしと生活の最新情報  
  一人,暮しの情報満載

一人暮しの情報満載


このページは 2008年 01月 06日 12時08分52秒に更新されました。

addOnloadとは?

JavaScript 初心者向けに開催している Web/JS 講習会で課題を出し、JavaScript 皆に同じ課題でコードを書いて貰いました。
イベントハンドラとは、何かイベントが発生した(クリックした、ページのロードが終わった、マウスをポイントした)タイミングで実行される関数のエントリポイントです。
window.onload の初期値は undefined で、ここに関数を割り当ててやると window オブジェクト(ブラウザ)が onload (読み込みを終えた)タイミングでその関数が実行されます。
と思うのは当然!なのですが先に説明したように関数実行のタイミングはお任せになっているのでコード上で function call 演算子を用いて引数を渡す方法が使えません。
関数内で変数を取り回すときにスコープは意識していると思います。何かのオブジェクトが今宣言した変数を管理している訳です。この「何か」を環境と呼びましょう。
上記例では、この環境に変数 word を追加して、それとひとくくりになった関数を返し window.onload にセットしています。
JavaScript では関数と環境は常にセットになっており、環境を指定して実行したり、あらかじめバインディングしておく事が出来ます。
今聞くとややこしく聞こえるかも知れませんが、JavaScript の仕様を理解しているとこれはシンプルです。
addOnLoad は既に onload にセットされている関数があれば新しく関数を作成し、その関数のプロパティに window.onload に登録されている関数の参照を作成し、新しい関数の中でそれを呼び出します。
addOnLoad が実行される度に新しく環境が作成されていくのがポイントです。スタックが4重であれば、4つの環境が存在し、それぞれで関数への参照が数珠つなぎのようにチェーンされている訳です。
これでどうなるかというと、既に onload にセットされている関数があれば新しく関数を作成し、グローバルオブジェクトのプロパティAに window.onload に登録されている関数の参照を作成し、新しい関数の中でそれを呼び出しています。
こうすると新しく作成された関数の中には常にAの呼び出しが含まれるため、2回目の addOnLoad で作成された関数オブジェクトに含まれる呼び出しと3回目のものとが相互に呼び合って無限ループに陥ります。
ディノオープンラボラトリは、株式会社ディノの社員ブログとして主に技術者向けに情報公開をするウェブサイトです。
多くの社員が自分の興味のあることについての記事を書き、結果として社外の方々にも面白がってもらえる状態が理想だと考えています。

[ 2] 同じコードを書いてもらって解説 Re: Web/JS part.4
[引用サイト]  http://openlab.dino.co.jp/2007/09/21/18163970.html

 

戻る

一人暮らしの情報満載
 


一人暮しの情報満載



 

Yahoo! JAPAN

暮らしと生活田舎暮し一人暮し美容暮し家計暮し節約暮し洗濯暮し
家計簿暮し田舎暮らしの物件住まい生活暮らしと生活
 暮らしと生活のメルマガ
情報の宝船【インフォマガジン】
暮らしと生活に役立つ無料情報が満載です。(いつでも解除できます)
メルマガ登録・解除
  ID:00614
情報の宝船【インフォマガジン】
   
Infomag トップページへ
今なら 『簡単すぎる!暮らしと生活をもっともっと幸せにする潜在意識活用法』のレポートをプレゼント!

3秒後に手に入れることができます。
>>詳細はコチラ

 暮らしと生活のトピックス

  暮らしと生活の行列相談所
  暮らしと生活チワワの連ちゃん
  もてる男もてる女の香りとは
  ないものはない!お買い物なら

 

SOHO・起業家を成功に導く電子書籍販売ツールを提供・・インフォカート暮らしと生活を応援する電子書籍販売ツールを提供・・インフォカート
>>もっと詳しく見たい方はコチラ

暮しと生活の情報満載

暮しと生活の情報満載


 

 トップ |
copyright 2004 © cocoro-r.com