javascript関数プログラミング---イベントのパラメータ伝達問題を解決します.
2458 ワード
説明:関数式プログラミングの概念は、本人の理解のものであり、正規の厳密な定義ではない.
予備知識点:
参照
関数プログラミング------関数は最終的には値ですので、関数は普通の変数のように様々な演算に参加できます.これは関数プログラミングです.
Jsは関数式プログラミングをサポートします.
Jsの関数呼び出しは、2つの括弧で囲まれ、1番目は定義された関数、2番目はパラメータを表します.
例:
関数;この部分--「(aa)」は、新たに定義された関数にパラメータを伝達する.つまり3番目の関数定義と
呼び出しを書き込みました.
シーケンス:js----javascript=========================================================================================== jsでUIコンポーネント、すなわちdivなどのパッケージを書く際には、困難が避けられない.jsで定義されるオブジェクトの中で、DOMノードのイベントにイベント応答関数を指定する場合、このイベント応答関数のthisオブジェクトは、通常、この関数が存在するオブジェクトではなく、イベントを生成するDOMノードである.また、必要に応じて、通常は他のパラメータをイベント応答関数に伝達する必要がある. この時の解決の道は関数式プログラミングを使うことです.以下は具体的な応用例である.=======================================================================================
例:以下の例は、ボタンを生成するButtonオブジェクトをjsによって定義する.
このボタンをクリックすると、イベントメソッドでは、イベントメソッド呼び出し時のButtonオブジェクトを取得したり、イベントを発生するオブジェクトを失わない(例では、domツリーの中のブットノード).
1 falertはクリックイベントの応答関数であり、この関数のclassObjはonclickイベント関数を呼び出した時のthisオブジェクトであり、ここではユーザが定義したButtonオブジェクトである.e onclick事件が発生した対象として、この場合は
Buttonクラスで作成されたバートンノードです.
2これにより、関数プログラミングは、イベントソースオブジェクトを失わない前提で、様々なパラメータをうまく伝達することができる.
予備知識点:
参照
関数プログラミング------関数は最終的には値ですので、関数は普通の変数のように様々な演算に参加できます.これは関数プログラミングです.
Jsは関数式プログラミングをサポートします.
Jsの関数呼び出しは、2つの括弧で囲まれ、1番目は定義された関数、2番目はパラメータを表します.
例:
alert(“aaa”);
(alert)(“aaa”)
(function(v){ return alert(v);})("aaa");
上の三つは等価です.第三の部分は、この部分---「(function(v){return alert(v)}」が新たに定義されました.関数;この部分--「(aa)」は、新たに定義された関数にパラメータを伝達する.つまり3番目の関数定義と
呼び出しを書き込みました.
シーケンス:js----javascript=========================================================================================== jsでUIコンポーネント、すなわちdivなどのパッケージを書く際には、困難が避けられない.jsで定義されるオブジェクトの中で、DOMノードのイベントにイベント応答関数を指定する場合、このイベント応答関数のthisオブジェクトは、通常、この関数が存在するオブジェクトではなく、イベントを生成するDOMノードである.また、必要に応じて、通常は他のパラメータをイベント応答関数に伝達する必要がある. この時の解決の道は関数式プログラミングを使うことです.以下は具体的な応用例である.=======================================================================================
例:以下の例は、ボタンを生成するButtonオブジェクトをjsによって定義する.
このボタンをクリックすると、イベントメソッドでは、イベントメソッド呼び出し時のButtonオブジェクトを取得したり、イベントを発生するオブジェクトを失わない(例では、domツリーの中のブットノード).
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
<script language=Javascript>
function Button(value) {
this.value = value;
this.button = document.createElement("button");
this.button.appendChild(document.createTextNode("test"));
document.body.appendChild(this.button);
// : 。
this.falert=function(classObj,e){
alert(classObj.value);
}
// onclick , v ,
// onclick this , Button ;
// onclick onclick this Button 。
this.button.onclick = (function(v) {
return function() {
// Button falert
v.falert(v,this);// this , dom button
};
}) (this);
}
var bt = new Button("affffffffddda");
</script>
</body>
</html>
その中:1 falertはクリックイベントの応答関数であり、この関数のclassObjはonclickイベント関数を呼び出した時のthisオブジェクトであり、ここではユーザが定義したButtonオブジェクトである.e onclick事件が発生した対象として、この場合は
Buttonクラスで作成されたバートンノードです.
2これにより、関数プログラミングは、イベントソースオブジェクトを失わない前提で、様々なパラメータをうまく伝達することができる.