如何寻找一个数值数组中的最大元素?
场景:Math.max()返回给定的一组数字中的最大值,如果是数值数组,怎么从数组中返回最大值?
措施:1.使用Math.max.apply(null, numArray);numArray为任意长度的数组
2.使用最新的扩展语句展开语法 Math.max(...arr);
扩展延申:call,apply,bind的区别?
call跟apply的用法几乎一样,唯一的不同就是传递的参数不同,call只能一个参数一个参数的传入。 apply则只支持传入一个数组,哪怕是一个参数也要是数组形式。最终调用函数时候这个数组会拆成一个个参数分别传入。
bind方法,他是直接改变这个函数的this指向并且返回一个新的函数,之后再次调用这个函数的时候this都是指向bind绑定的第一个参数。bind传参方式跟call方法一致。
const obj = {}
function test(...args) {console.log(args)}
const newFn = test.bind(obj, '静态参数1', '静态参数2')
newFn('动态参数3', '动态参数4')
总结:
- 当我们使用一个函数需要改变
this指向的时候才会用到call`apply`bind - 如果你要传递的参数不多,则可以使用
fn.call(thisObj, arg1, arg2 ...) - 如果你要传递的参数很多,则可以用数组将参数整理好调用
fn.apply(thisObj, [arg1, arg2 ...]) - 如果你想生成一个新的函数长期绑定某个函数给某个对象使用,则可以使用
const newFn = fn.bind(thisObj); newFn(arg1, arg2...)

浙公网安备 33010602011771号