上下文调用模式:JS提供给我们的三个方法,而这三个方法的作用是随意控制函数中this的指向
1.函数.call(第一个参数:想让函数中this指向谁,就传谁进来
后面的参数:本身函数需要传递的实参,一个个传递进来即可)
call()的作用:
(1)调用函数
(2)指向函数中this的指向
<script> function fn(x,y){ console.log(x+y) console.log(this) } fn.call([15,54,68],5,9) </script>
打印结果:
14
Array(3)
2.函数.apply(第一个参数:想让函数中this指向谁,就传谁进来,
第二个参数要求传一个数组,数组中包含了要传递的实参)
apply()的作用:
(1)调用函数
(2)指向函数中this的指向
<script> function fn(x,y){ console.log(x+y) console.log(this) } fn.apply([12,54,68],[11,9]) </script>
打印结果:
20
Array(3)
3.函数.bind(第一个参数:想让函数中this指向谁,就传谁进来
后面的参数:本身函数需要传递的实参,一个个传递进来即可)
bind()的作用:
(1)克隆当前函数,返回克隆出来的新的函数
(2)新克隆出来的函数,这个函数的this被指向了
<script> function fn(x,y){ console.log(x+y) console.log(this) } var f=fn.bind([12,54,68],1,9) f(); </script>
打印结果:10
[12,54,68]