call()、apply()、bind() 的用法

1,call()、apply()、bind() 都是重新定义this

2,call 、bind 、 apply 这三个函数的第一个参数都是 this 的指向对象,第二个参数(传参数方式不同)

3,bind是返回对应函数,便于稍后调用;apply,call方法则是立即调用

 

用法:call

1 所有函数都可以调用原型(__proto__)
2 有N个参数,至少一个
3 第一个参数就是我们要改变得this,从第二个参数开始就是函数本身的参数
4 call函数有返回值。返回值是函数的函数值

function getInfo(age){ return { name:this.name, age:age } } var tina = { name:'博学' } console.log(getInfo.call(tina,18));

用法:apply


1 所有函数都可以调用原型(__proto__)
2 有N个参数,至少一个
3 第一个参数就是我们要改变得this,从第二个参数开始就是函数本身的参数
4 call函数有返回值。返回值是函数的函数值

1
function getInfo(age){ 2 return { 3 name:this.name, 4 age:age 5 } 6 } 7 var tina = { 8 name:'博学'11 12 console.log(getInfo.apply(tina,[18]));

用法:bind 

1 有N个参数
2 返回一个函数,只有调用该函数才能拿到getInfo的值
3 返回一个函数可以作为构造函数使用,但是这个时候this就失效了

function getInfo(age,vip){ return { name:this.name, age:age, vip:vip } } var tina = { name:'博学' } let tinaFun = getInfo.bind(tina,18); console.log(tinaFun('vip'));

 

posted @ 2022-04-12 22:00  博星  阅读(161)  评论(0编辑  收藏  举报