一、求数组中的最大值 / 最小值 【apply()方法】
二、改变 不需要立即调用的函数 内部的this指向 【bind()方法】*
1、只有一个按钮时:
解决方法1:
解决方法2:
最优解决方法:
2、有多个按钮时:
最优解决方法:
三、补充知识:call
、apply
、bind
总结
call
、apply
、bind
后面可以接两个参数:
- 第一个是
this
:以此来改变函数内部的this
指向- 第二个是
要传递的参数
,但是这三者传递参数的写法不一样:(它们里面的参数类型均是多样滴,可以是数组、字符串、对象等)
apply
必须写成数组样式,比如:apply(this,arguments)
、apply(this,['1',[1,2],{a:'1'}])
arguments
是类数组:arguments
是一个对应于传递给(非箭头)函数的参数的类数组对象,即以数组形式接收到传递给(非箭头)函数的所有参数。
- 附加文档:Arguments介绍
bind
可以写成数组样式,也可以写成以逗号分隔的样式,But
,后面要加个小括号()调用一下,比如:bind(this,arguments)()
、bind(this,['1',[1,2],{a:'1'}])()
、bind(this,'1',[1,2],{a:'1'})()
call
必须写成以逗号分隔的样式,比如:call(this,'1',[1,2],{a:'1'})
可参考的优秀文章(yyds)👍:https://www.runoob.com/w3cnote/js-call-apply-bind.html