总结:
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);
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);
Paste_Image.png
add函数里需要return 出结果
网友评论