call apply thisの違い

2235 ワード

JSでは、この3つは関数を変えるためのthisオブジェクトの指向です.彼らはどのような違いがありますか?
                     :  
1、         this      。  
2、       this      。  
3、           。  
彼らの違いはどこにありますか?まず例を見てください.
1.                  var xw = {
2.                          name : "  ",
3.                          gender : " ",
4.                          age : 24,
5.                          say : function() {
6.                         alert(this.name + " , " + this.gender + " ,  " + this.age);                                
7.                          }
8.                  }
9.                  var xh = {
10.                          name : "  ",
11.                          gender : " ",
12.                          age : 18
13.                  }
14.                  xw.say();



        ,         ,   ,   24。  
     xw say     xh    。  
  call    :

1.  xw.say.call(xh);



  apply    :

1.  xw.say.apply(xh);


   bind      :

1.  xw.say.bind(xh)();


     xw.say.bind(xh)         ,      ?call apply          , bind            ,       ()        。  
  call apply      ?           。

1.                  var xw = {
2.                          name : "  ",
3.                          gender : " ",
4.                          age : 24,
5.                          say : function(school,grade) {
6.        alert(this.name + " , " + this.gender + " ,  " + this.age + " , " + school + " " + grade);                                
7.                          }
8.                  }
9.                  var xh = {
10.                          name : "  ",
11.                          gender : " ",
12.                          age : 18
13.                  }


    say        ,    call/apply       。  
  call      

1.  xw.say.call(xh,"    ","   ");       



   apply      

1.  xw.say.apply(xh,["    ","         "]);



      ,call      say         , apply           ,        say        ,          。  
  bind     ?    call    。

1.  xw.say.bind(xh,"    ","   ")();



    bind          ,                  。

1.  xw.say.bind(xh)("    ","   ");