Math.max.apply(Math,nums)
了解到第一个参数是为了设置正确的this,请问Math为什么可以正确的设置this
Math.max.apply(Math,nums)
了解到第一个参数是为了设置正确的this,请问Math为什么可以正确的设置this
其实这里的需求是拿到数组最大值,这个指向Math其实只是为了填补一下apply第一个参数,意义不大,即使传个null、123啥的也是没问题,因为Math.max本来就是指向Math自己的
像下面这个的话指向this就比较好理解了,就是为了从obj身上拿name值
let obj = {
name: '小明',
getName() {
return this.name
}
}
let obj1 = {
getName() {
return this.name
}
}
obj1.getName.apply(obj) //小明
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答942 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
设置
this
是apply
函数,跟Math
没关;这里不指定
Math
也没关系,因为max
内部不依赖this
;apply
的作用除了指定this
,还可以合并入参;比如需要传入的参数有非常多个如
Math.max(a,b,c,d,e)
,那就可以借用apply
的方式(当然还可以使用...
)https://developer.mozilla.org...