欢迎光临散文网 会员登陆 & 注册

千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

2023-07-19 16:59 作者:bili_81064707128  | 我要投稿

P 119 118-改变this指向

不同的环境中 this的指向不同但是有时会我们需要让这个this指向一个特定的地方  我们就需要强行改变this指向

方法

call()

语法 : 函数名.call(参数1,参数2,参数3,.....)

参数1 : 表示的是你的this要指向的对象  或者是你要让this指向哪里

从参数2 开始是你传递的参数  有多少写多少 需要一个一个传递 

语法 : 对象.函数名.call 参数1,参数2,参数3,.....)

特点

这个函数会立即执行

apply()

语法:函数 .apply(参数1 , 参数2)

参数1 : 表示的是你的this要指向的对象  或者是你要让this指向哪里

参数2 是一个数组 里面存放的是你要传递的参数 有多少都要放在这个数组里

语法:对象.函数 .apply(参数1 , 参数2)

特点

这个函数会立即执行

bind()

语法 : 函数名.bind(参数1,参数2,参数3,.....)

参数1 : 表示的是你的this要指向的对象  或者是你要让this指向哪里

从参数2 开始是你传递的参数  有多少写多少 需要一个一个传递 

语法 : 对象.函数名.bind 参数1,参数2,参数3,.....)

特点

不会立即执行

会返回一个改变this指向以后的函数

如果想要执行 需要调用这个函数

这个时候的this被锁死不能再改变

总结

相同点

都可以改变this的指向

不同点

传递参数的不同

call()和bind()传递参数的方式是一样的 需要一个一个传递

apply() 参数2 需要传递一个数组  需要的参数都需要放到数组中

执行时机

call()和apply()会立即执行

bind()不会立即执行 会返回一个改变this指向以后的函数 需要调用以后执行

千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip的评论 (共 条)

分享到微博请遵守国家法律