js利器call()、appy()、bind()の3つの方法の使用と役割について


call()、appy()、bind()の3つの方法はjsの中で特に重要で、特にjsのソースコードを書く時、その3つの方法は一体何に使いますか?
①コールの方法
1.コールはthisの方向を変えることができます.
2.パラメータも伝えることができます.
3.関数を実行できます.
var a={
     
            name : "  " ,
            age : 18,
            sex : " ",
            fn : function(){
     
                console.log(this.name+"  fn    ");
            },
            ft : function(names, days){
     
                console.log("  "+ names+",  "+ days+"   "+"  ft    ");
            }
        }
         var b = a.fn;  
         b();//this.name            this    window     window   name          
         b.call(a); //  this    this  a  
        //call                   this      
        var c = a.ft;
        c.call(a,"  ","  "); //     
この3つの出力はそれぞれ:①fnメソッドの呼び出しに成功しました.②ミンさんの呼び出しに成功しました.③紅と申します.食事の時にftメソッドを呼び出すことに成功しました.
初めてa.fnメソッドをbに値付けした時は実行していませんので、関数だけを持って実行していません.この時、thisはwindowを指していますので、明を出力することができません.二回目はcallを使ってthisの方向を変えて、aを指すので、彼のname属性を得ることができます.3回目の説明はコールもパラメータを伝えることができます.
②アプリ方法
1.コールはthisの方向を変えることができます.
2.パラメータも伝えることができます.
3.関数を実行できます.
var a={
     
            name : "  " ,
            age : 18,
            sex : " ",
            fn : function(){
     
                console.log(this.name+"  fn    ");
            },
            ft : function(names, days){
     
                console.log("  "+ names+",  "+ days+"   "+"  ft    ");
            }
        }
        var b = a.fn ;
        b(); //this.name            this    window      window   name           
        b.apply(a);  //  this    this  a
        //apply                   this      
        var c = a.ft;
        c.apply(a, ["  ","  "]); //     
三つの出力はそれぞれ:①fnメソッドの呼び出しに成功した、②小明の呼び出しに成功した、③小花と申します.私は化粧をする時にftメソッドを呼び出してapplyとcallを成功させました.しかし、パラメータを伝える時にコールは普通のパラメータが伝達されます.受信時には、配列長と同じくらいの大きさのモジュラスをそれぞれ設定して受信することができる.
③bind方法
1.thisの向きを変えることができます.
2.パラメータを伝えることができます.
3.関数は実行できませんが、新しい関数を返します.
 var a={
     
            name : "  " ,
            age : 18,
            sex : " ",
            fn : function(){
     
                console.log(this.name+"  fn    ");
            },
            ft : function(names, days){
     
                console.log("  "+ names+",  "+ days+"   "+"  ft    ");
            }
        }
        var b = a.ft ; //   this  window
        var c=b.bind(a,"  ","  "); //bind this   a,         ,         。
        c(); //       ,         ft    
bind関数にはいろいろな呼び方があります.b.bind(a,「小強」,「今日」)().b.bind(a、「熊大」)(「剛」);b.bind(a)(「熊二」、「先ほど」);これらの方法は、ビッド法を呼び出し、参照することができる.これはcall方法apply方法とは違って、bindは新しい関数を返すことができます.