es Math对象的max方法的apply()方法

`var num=[1,2,3]
var themax=Math.max.apply(Math, num);`
这种写法中:两点疑问
1:apply()两参数一个是在其中运行函数的作用域,另一个是参数数组
而且max()函数默认接受的是一串数值,但是我还是无法理解
传入这个Math对象有什么用 默认Math.max()代表Math对象内的max()方法,不是一个意思吗
这个数组在哪一步转换为一串数值的?

2.当我传入的对象为null时,运行结果依然成立,为什么

阅读 2.3k
1 个回答

call和apply的区别知道吧
call(this, 1, 2, 3, ...);
apply(this, [1, 2, 3, ...]);
用apply就是为了把数组换成参数列表,第一个this的位置写null更好,因为不会污染其他的this上下文环境,这个位置就是一个占位,没有实际意义。
你想知道的底层原理需要看apply方法的源码,那就不是javascript范畴的了,需要看开发源码

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题