このhttp://raphaeljs.com/australia.htmlの例のソースコードを見て、RaphaelJSグラフィックライブラリを使用して同様のプロジェクトを作成するために行われたことを解釈しようとしています。
しかし、私はコードの一部について混乱しています。具体的には、作成者はforループ内の関数でパラメーター "st"を使用しますが、これは以前に定義されていませんが、2番目のパラメーター"state"は定義されています。何が欠けているのかわかりませんが、誰かがここで何が起こっているのか説明してもらえますか?これはジェネリックパラメーターですか、それとも特定の何かへの呼び出しですか?
for (var state in aus) {
aus[state].color = Raphael.getColor();
(function (st, state) {
st[0].style.cursor = "pointer";
st[0].onmouseover = function () {
current && aus[current].animate({fill: "#333", stroke: "#666"}, 500) && (document.getElementById(current).style.display = "");
st.animate({fill: st.color, stroke: "#ccc"}, 500);
st.toFront();
R.safari();
document.getElementById(state).style.display = "block";
current = state;
};
st[0].onmouseout = function () {
st.animate({fill: "#333", stroke: "#666"}, 500);
st.toFront();
R.safari();
};
if (state == "nsw") {
st[0].onmouseover();
}
})(aus[state], state);
}