一、call方法
- 功能:第一个可以指定函数的this,第二个可以执行函数并传参
- 参数:第一个参数,传入一个指定让 this 指向的对象,第二个参数及以后,是函数参数的列表
- 返回值:就是函数自己的返回值
- 测试
function fun(a,b){
console.log(this);
console.log( a + b);
}
var Person={
name :"zhangsan"
}
fun.call(Person,1,2);
测试结果:
二、apply方法
- 功能:第一个可以指定函数的this,第二个可以执行函数并传参
- 参数:第一个参数,传入一个指定让 this 指向的对象,第二个参数是函数的参数组成的数组
- 返回值:就是函数自己的返回值
- 测试
var Person={
name :"lisi"
}
fun.apply(Person,[3,4]); //继续调用call方法中写好的fun函数
测试结果:
三、 bind方法
- 功能:第一个可以指定函数的 this, bind方法不能执行函数,但是可以传参
- 参数:第一个参数,传入一个指定让 this 指向的对象,第二个参数及以后,是函数参数的列表
- 返回值:返回一个新的指定了this的函数,也可以叫绑定函数
- 测试
function fun(a, b) {
console.log(this);
console.log(a + b );
}
var fn = fun. bind(Person,2,3);
//继续调用前面写好的Person函数,这里的2,3是指的a,b
console.log(fn)
测试结果:发现函数只绑定不输出a + b,没有执行函数
console.log(fn);
fn();
测试结果:会发现执行了函数,结果为5
此篇文章,乃学习笔记,如有建议,欢迎大佬们留言评论~~