call笔记

总结:

1、call的第一个参数是this
2、call的其他参数是arguments
3、返回值用于返回结果,不过没有return,就返回undefined
4、形参就是var a =arguments[0]
5、

  add.call("abcds",1,2);
  add.apply("abcds",[1,2]);

当参数少时用call,参数多或者不知数组长度时用apply

推理

1、

function b (){
     console.log(this);
     console.log(arguments);
}
b.call();
Paste_Image.png

没传的时候,this为window
2、

function b (){
     console.log(this);
     console.log(arguments);
}
b.call({name:'this'},1,2,4);
call笔记_第1张图片
Paste_Image.png

类似于:

function b (){
     console.log(this);
     console.log(arguments);
}
var obj={name:'this'};
b.call(obj,1,2,4);

3、

function add (){
     console.log(arguments[0]);
     console.log(arguments[1]);
     console.log(arguments[0]+arguments[1]);
}
var sum=add.call(undefined,1,2);
console.log(sum);
call笔记_第2张图片
Paste_Image.png

add函数里需要return 出结果

你可能感兴趣的:(call笔记)