JavaScript直接呼び出し関数とコールコールコールの違いの実例分析
2612 ワード
本明細書の例は、JavaScriptの直接呼び出し関数とコールコールコールの違いを説明する.皆さんに参考にしてあげます.具体的には以下の通りです.
直接呼び出し
直接呼び出し関数は、最も一般的な方法で、直接関数に付加されたオブジェクトを使用者として、関数の後括弧内にパラメータが入ってきて、関数を呼び出します.
たとえば:
コール()で関数を呼び出します.
文法:call([thisObject]);
新しいクラスメートは直接に呼べばいいようですが、実はそうではありません. 直接関数の呼び出しは簡単ですが、融通がきかないです. 関数を呼び出すときは、関数の参照が動的に入ってくる必要があります.このときは、関数を動的に呼び出すためには、コール方法を使用して呼び出します.
例を挙げます
ここを見て疑問があるはずです. コールは直接の呼び出しと何の違いがありますか?コールコールはthisの指針を変更しました.コールされた関数にはthisを使わないと違います.
もう一つの呼び出された関数の例を挙げます.
関数をappy()で呼び出します.
apply()メソッドはcall()メソッドの機能の要約と似ています.関数を動的に呼び出すために使用できます.apply()とcall()の違いは以下の通りです.コール()によって関数を呼び出す場合は、各パラメータ を括弧に詳細に並べておく必要があります. appy()関数を動的に呼び出すには、全起動パラメータ に一度に配列形式で入ってくる必要がある.
文法:appy([thisObj],argAray])
たとえば、次の二つの文は同じです.
基本的にはapply()とcall()は、伝え方だけではちょっと違っています.
興味のある友達はオンラインHTML/CSS/JavaScriptコードを使ってツールを実行できます.http://tools.jb51.net/code/HtmlJsRun上記コードの運転効果をテストします.
JavaScriptの関連内容については、当駅のテーマを見ることができます.「JavaScript常用関数技術まとめ」、「javascript対象入門教程」、「JavaScriptエラーとデバッグ技術まとめ」、「JavaScriptデータ構造とアルゴリズム技法まとめ」及び「JavaScript数学演算用法まとめ」
本論文で述べたように、JavaScriptプログラムの設計に役に立ちます.
直接呼び出し
直接呼び出し関数は、最も一般的な方法で、直接関数に付加されたオブジェクトを使用者として、関数の後括弧内にパラメータが入ってきて、関数を呼び出します.
たとえば:
window.alert(" ");
その中で使用者がwindowであれば省略できます.つまり直接alert(「テストコード」)です.コール()で関数を呼び出します.
文法:call([thisObject]);
新しいクラスメートは直接に呼べばいいようですが、実はそうではありません. 直接関数の呼び出しは簡単ですが、融通がきかないです. 関数を呼び出すときは、関数の参照が動的に入ってくる必要があります.このときは、関数を動的に呼び出すためには、コール方法を使用して呼び出します.
例を挙げます
var each =function(array,fn)
{
for(var index in array)
{
fn.call(null,index,array[index]);
}
}
each([4,20,3],function (index,ele)
{
document.write(" "+index+" "+ele+"<br/>");
}
);
一見めまいがするかもしれませんが、fn.call文に注意してください.コールコールコールの形式はパラメータの最初の書き込み者で、後は順番にパラメータを入力します. パラメータ形式は特別で、直接呼び出しとは違って、調整者は前に書かず、パラメータの最初の項目です. フォーマット:fn.cal(obj,args);ここを見て疑問があるはずです. コールは直接の呼び出しと何の違いがありますか?コールコールはthisの指針を変更しました.コールされた関数にはthisを使わないと違います.
もう一つの呼び出された関数の例を挙げます.
var x = " "; // x
function a(){ // a
this.x = " a ";
}
// , x
function f(){
alert (this.x);
}
// “ a ”
f.call(new a());
f.call(new a()とは、関数fを呼び出されたオブジェクト「new a()」にコピーして解析することであり、実際には、以下のコードの解析結果と同じである.
function a(){
this.x = " a ";
alert(this.x);
}
a();
実は、f.cal()を呼び出したときに、f()の中のthisの方向を修正しました.本来、f中のthis.a,this.b属性はすべて自身のものであるが、f.cal()呼出時に新しいオブジェクトe(this)が入ってきて、fのthisにeを結びつけた.本来はfに増加する属性であり、eに加えた.(eとe()、fとf()は全部等価です.「継承」に似ていますが、これはJSの中の対象というべきです.関数をappy()で呼び出します.
apply()メソッドはcall()メソッドの機能の要約と似ています.関数を動的に呼び出すために使用できます.apply()とcall()の違いは以下の通りです.
文法:appy([thisObj],argAray])
たとえば、次の二つの文は同じです.
myfun.call(window,12,13);
myfun.capply(window,[12,13]);
thisの針を修正する点で、apply()とcall()も一致しています. 基本的にはapply()とcall()は、伝え方だけではちょっと違っています.
興味のある友達はオンラインHTML/CSS/JavaScriptコードを使ってツールを実行できます.http://tools.jb51.net/code/HtmlJsRun上記コードの運転効果をテストします.
JavaScriptの関連内容については、当駅のテーマを見ることができます.「JavaScript常用関数技術まとめ」、「javascript対象入門教程」、「JavaScriptエラーとデバッグ技術まとめ」、「JavaScriptデータ構造とアルゴリズム技法まとめ」及び「JavaScript数学演算用法まとめ」
本論文で述べたように、JavaScriptプログラムの設計に役に立ちます.