2011-11-29 13 views
5

私は自分自身をJavaScriptに熟練し、同じことを達成するためのさまざまな方法に精通していると考えます。しかし、今日、私は私が前に見たことがなかったいくつかの関数の構文に出くわした:JavaScript関数の構文説明:function object.myFunction(){..}

function document.body.onload() 
{ 
    alert('loaded'); 
} 

私は、このようなコードを書くとしたら、私はこのようにそれをやっているだろう:

document.body.onload = function() 
{ 
    alert('loaded'); 
} 

は、この事実を無視しますonloadイベントを処理する最善の方法ではありませんが、これは実際に有効なJavaScriptですか? FireFox(およびJSLint)で構文エラーが発生するように見えるので、Internet Explorerの構文のみであると推測していますか?それがIEならば、私はそれを削除したいですが、私はそれがいくつかの変わった副作用を持つかもしれないことを心配しています。

答えて

10

function document.body.onloadは、非標準のJavaScriptシンタックスです。 2番目の形式を使用して、元のコードを書いた人に火をつけます。

はありません、それが有効ではありません最後}
document.body.onload = function() { 
    ...code... 
}; //this is easy to miss 
1

後にセミコロンを忘れないでください。 function X() {}の変形では、関数の名前に文字、数字、 '$'および '_'のみが含まれている必要があります。

他の構文を確認する場合はget the standard hereとすることができますが、JavaScript: The Good Partsの後ろの構文ダイアグラムを消化する方がはるかに簡単です。