Math.max()只能传数字,可以使用apply将数组转为一个一个参数传入
以下对call() 和 apply() 说法哪些是正确的 ()
A
apply()函数有两个参数:第一个参数是上下文,第二个参数是参数组成的数组;
B
非严格模式,如果第一个参数是null,则使用全局对象代替;
C
call和apply的意思一样,只不过是参数列表不一样.
D
通过apply可以将数组装换为参数列表的集合
正确答案:ABCD
apply,call,bind的用法和区别(方法劫持)
用途:手动改变this的指向
区别:1.apply和call会使当前函数立即执行,bind会返回一个函数,后续需要时再调用
-
call是apply的语法糖,只有传的参数不同,call中要传多个任意参数,apply只可以直接传数组或者类数组
-
bind是为函数绑定一个this上下文
规则: fn.apply(上下文环境,执行所需数组)
ps:如果上下文的值为null,则使用全局对象代替,相当于没传上下文还用以前的
apply可以将一个数组转换为一个参数列表([p1,p2,p3]转换为p1,p2,p3)
Math.max()只能传数字,可以使用apply将数组转为一个一个参数传入
如果这个函数处于非严格模式下,则指定为 null 或 undefined 时会自动替换为指向全局对象,原始值会被包装。
将数组装换为参数列表的集合
因为Math.max 参数里面只支持Math.max(param1,param2,param3…),所以可以根据刚才apply的这一特点来解决
var max = Math.max.apply(null,array) === Math.max(param1,param2,param3…);
这样轻易的可以得到一个数组中最大的一项(apply会将一个数组装换为一个参数接一个参数的传递给方法)
__EOF__

本文链接:https://www.cnblogs.com/longmo666/p/17834948.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)