apply和Math.max()函数使用与区别

这次给大家带来apply和Math.max()函数使用与区别,apply和Math.max()函数使用与区别的注意事项有哪些,下面就是实战案例,一起来看一下。

下面给大家介绍js中apply和Math.max()函数的问题,具体内容如下所示:

var arr=[1,3,6,3,7,9,2];console.log(Math.max.apply(null,arr));

登录后复制

一直搞不懂为什么这样可以算出一个注意事项的最大值?一直想不明白,请js高手指教一下。

答案1

Function.apply()是JS的一个OOP特性,一般用来模拟注意事项和扩展this的用途,对于上面这段代码,可以这样去理解:

XXX.apply是一个调用函数的方法,其参数为:apply(Function, Args),

Function为要调用的方法,Args是参数列表,当Function为null时,默认为上文,

Math.max.apply(null, arr)

登录后复制

可认为是

apply(Math.max, arr)

登录后复制

然后,arr是一个参数列表,对于max方法,其参数是若干个数,即

Math.max(a, b, c, d, ...)

登录后复制登录后复制

当使用apply时,把所有参数加入到一个数组中,即

arr = [a, b, c, d, ...]

登录后复制

代入到原式,

Math.max.apply(null, [a, b, c, d, ...])

登录后复制

实际上等同于

Math.max(a, b, c, d, ...)

登录后复制登录后复制

在此处,使用apply的优点是在部分JS引擎中提升性能。

答案2

Math.max()方法,支持传递多个参数,比如:Math.max(1,4,2,3,7,5,6)

但是它不支持直接传递一个数组作为参数,比如:Math.max(new Array(1,4,2,3,7,5,6))。

这里,只要我们有方法把数组,一个一个拆分开来,传递到Math.max()方法中,就实现了传递数组的方法。

所有函数都有apply(作用域链,参数)这个方法,这个函数的“参数”,接收一个数组,并且是将数组中的每个值,分开来,传递给调

补充:

注意事项中Math.max.apply和Math.max的区别

Javascript中的Math.max方法可以求出给定参数中最大的数。

> Math.max('1','2','3.1','3.2') Math.min(1,0,-1)< -1

登录后复制

但如果是数组,就不能这样调用了。

此时就用到了apply方法:

apply 方法 (Function) (JavaScript)调用函数,并用指定对象替换函数的 this 值,同时用指定数组替换函数的参数。apply([thisObj[,argArray]])thisObj  可选。 要用作 this 对象的对象。argArray

登录后复制

  可选。 要传递到函数的一组参数。
巧妙地使数组也可以调用Math.max和Math.min。

> Math.max.apply(null, ['1','2','3.1','3.2']) Math.min.apply(null, [1,0,-1])< -1

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

注意事项

注意事项

以上就是apply和Math.max()函数使用与区别的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2765085.html

(0)
上一篇 2025年3月8日 10:40:24
下一篇 2025年2月18日 04:40:57

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Vue中computed与methods使用区别

    这次给大家带来Vue中computed与methods使用区别,Vue中computed与methods使用的注意事项有哪些,下面就是实战案例,一起来看一下。 Vue中computed可以用来简单的拼接需要展示的数据 computed an…

    2025年3月8日
    200
  • js中的apply与call的用法

    这篇文章主要介绍了关于js中的apply与call的用法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 在ECAMScript3给Function的原型定义了两个方法,它们是Function.prototype.call和F…

    编程技术 2025年3月8日
    200
  • this指向与call、apply使用

    这次给大家带来this指向与call、apply使用,this指向与call、apply使用的注意事项有哪些,下面就是实战案例,一起来看一下。 1、当函数作为普通函数调用时,this 指向全局对象 2、当函数作为对象的方法调用时,this …

    编程技术 2025年3月8日
    200
  • apply和Math.max()使用与区别

    这次给大家带来apply和Math.max()使用与区别,apply和Math.max()使用与区别的注意事项有哪些,下面就是实战案例,一起来看一下。 var arr=[1,3,6,3,7,9,2];console.log(Math.max…

    编程技术 2025年3月8日
    200
  • JS中this的指向以及call、apply的作用_基础知识

    本篇文章给大家分享了JS基础内容this指向以及call、apply的相关知识点内容,有兴趣的朋友可以学习参考下。 在具体的实际应用中,this 的指向无法在函数定义时确定,而是在函数执行的时候才确定的,根据执行时的环境大致可以分为以下3种…

    编程技术 2025年3月8日
    200
  • 详细讲解Js apply()使用(含有代码)

    下面是我给大家整理的Js apply()使用,有兴趣的同学可以去看看。 Js apply方法详解   我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的…

    编程技术 2025年3月8日
    200
  • 畅谈在原生JS与其他JS 区别

    下面是我给大家整理的在原生JS与其他JS 区别,有兴趣的同学可以去看看。 1.原生js就是javascript ,也是网站前端核心内容,主要操作流程是,先获得DOM或切换DOM,然后修改DOM对象的属性或调用DOM对象的方法,存在的主要问题…

    编程技术 2025年3月8日
    200
  • JS中this的指向以及call、apply的作用(图文教程)

    在具体的实际应用中,this 的指向无法在函数定义时确定,而是在函数执行的时候才确定的,根据执行时的环境大致可以分为以下3种: 1、当函数作为普通函数调用时,this 指向全局对象 2、当函数作为对象的方法调用时,this 指向该对象 3、…

    编程技术 2025年3月8日
    200
  • 在JS中如何使用call、apply

    这次给大家带来在JS中如何使用call、apply,在JS中使用call、apply的注意事项有哪些,下面就是实战案例,一起来看一下。 在具体的实际应用中,this 的指向无法在函数定义时确定,而是在函数执行的时候才确定的,根据执行时的环境…

    编程技术 2025年3月8日
    200
  • 在Vue中详细解读method与computed的区别(详细教程)

    在new vue的配置参数中的computed和methods都可以处理大量的逻辑代码,但是什么时候用哪个属性,要好好区分一下才能做到正确的运用vue。这篇文章主要介绍了vue中method与computed的区别,需要的朋友可以参考下 在…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论