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)(" "," ");