为什么 Math.max.apply(null,arr) 可以求最大最小值

举报
骁M_M 发表于 2021/06/04 18:17:43 2021/06/04
【摘要】 apply用法function.apply(obj,arr))第一个参数obj:function的this指向obj,null则指向全局第二个参数arr:是一个数组,作为参数传给function,ES5开始,这个参数可以是一个类数组对象,就是包含一个length属性的对象{length:2}Math.max.apply(null,arr)的解释其中第一个参数null,这个是因为没有对象去调用...

apply用法
function.apply(obj,arr))
第一个参数obj:
function的this指向obj,null则指向全局
第二个参数arr:
是一个数组,作为参数传给function,ES5开始,这个参数可以是一个类数组对象,就是包含一个length属性的对象{length:2}

Math.max.apply(null,arr)的解释
其中第一个参数null,这个是因为没有对象去调用这个方法,所以直接传递null过去。

window可以说是全局对象,就是最顶层的对象,所有全局的变量和函数方法全部都被绑定在window对象身上。

那么Math.max.apply(null, [a, b, c, d, …])
实际上等同于Math.max(window, [a, b, c, d, …])
也就是Math.max(a, b, c, d, …),因此能够说明为什么 Math.max.apply(null,arr) 可以求最大最小值

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。