JavaScript直接呼び出し関数とコールコールコールの違いの実例分析

2612 ワード

本明細書の例は、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()関数を動的に呼び出すには、全起動パラメータ
  • に一度に配列形式で入ってくる必要がある.
    文法: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プログラムの設計に役に立ちます.