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

举报
骁M_M 发表于 2021/06/04 18:17:43 2021/06/04
7.8k+ 0 0
【摘要】 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

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

    全部回复

    上滑加载中

    设置昵称

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

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

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