2011-01-28 1 views
4

これは、MicrosoftAjax.debug.jsファイルの最初の数行です。この構文について全部は?

構文で何をしていますか?具体的にライン3

Function.__typeName = 'Function'; 
Function.__class = true; 
Function.createCallback = function Function$createCallback(method, context) { 
+0

「関数」コンストラクタでいくつかのプロパティを設定しています。それはどうですか? –

+0

btw 3行目の関数リテラルが名前付き関数式 –

答えて

3

これは、関数名に$文字を持つことが起こる普通のコードです。

function Function$createCallback(method, context) { ... }は、名前付き関数式です。それはFunction$createCallbackという名前の関数に評価されます。
多くの言語とは異なり、$文字はJavascript識別子(jQueryを参照)で完全に合法であるため、これはやや珍しい名前の通常の関数です。

コードでは、この関数を割り当ててFunctionオブジェクトのcreateCallbackプロパティを作成します。
(このプロパティは関数であるため、Javascript関数は変数と違いはありません)

+0

名前付き関数と匿名関数をそのプロパティに割り当てる利点は何ですか? – Jacob

+2

@Jacob http://kangax.github.com/nfe/ –

+0

@ŠimeVidas:私は同じ記事を投稿しようとしていました。 :o) – user113716

関連する問題