2012-01-14 8 views
2

私はMathJaxのapiを理解しようとしています。コードの最初の行は、window配列を持つ無名関数です。これは "windowアレイ"とは何ですか?コードは次のとおりです。mathjaxのウィンドウ配列

(function (d) { 
      var b = window[d]; 
//... 
})('MathJax') 

私はこのことを理解してください。

+0

は、あなたが取り組んでいるハックは何ですか? – aeskr

+0

@ AdleyEskridge - 基本的に私はxmlとmathグラフィックスの間のマップを変更しようとしています。そのようなマップが存在するかどうか知っていますか?私はドキュメントを検索してきましたが、何も見つけられません。 – dopatraman

+0

元のソース( 'd'や' b'よりも意味のある名前を使用する)ではなく、縮小されたソースコードを表示しているようです。 'MathJax/MathJax.js'の代わりに' MathJax/unpacked/MathJax.js'を見てください。 –

答えて

1

これは配列ではありません。それはちょうどwindowオブジェクトです。

JavaScriptでは、オブジェクトのプロパティにアクセスするには、object.propertyobject['property']の2つの方法があります。

最初の構文は、プロパティの名前がvalid JavaScript identifierの場合にのみ有効です。 2番目のプロパティは任意のプロパティ名で動作します。

はここで多少あなたのコードと一致する工夫デモ(try it on JSFiddle):私が求めることができる場合

function lookThroughWindow(nameOfProperty) { 
    alert(window[nameOfProperty]); 
} 

var propertyName = 'location'; 
lookThroughWindow(propertyName); 

// The above just does this: 
alert(window.location); 
+0

@ AdleyEskridge - それを傷つけます。 'alert(window.name)'を使ってみましたが、 'result'が返されました。何が起こったのか説明できますか? – dopatraman

+1

@codeninja、JSFiddleで上記のスニペットを試しましたか? 'window.name'は' window [name] 'と同じではありません。これは 'window ['name']'と同じです。 'window [name]'を使うと、結果は 'name'変数の_value_と同じ名前のプロパティの値になります。私は混乱を避けるために、私の答えにパラメータ名を変更するつもりです。 – aeskr

+0

@codeninja 'window.name'は、現在のウィンドウの名前を返します。ウィンドウが 'iframe'にある場合、' iframe'の名前が返されます。 JSFiddleでは、結果が表示されるiframeの名前が「結果」であるため、その警告メッセージを受信したことになります。 – aeskr