鍍金池/ 問答/HTML/ es Math對象的max方法的apply()方法

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

`var num=[1,2,3]
var themax=Math.max.apply(Math, num);`
這種寫法中:兩點疑問
1:apply()兩參數(shù)一個是在其中運行函數(shù)的作用域,另一個是參數(shù)數(shù)組
而且max()函數(shù)默認接受的是一串數(shù)值,但是我還是無法理解
傳入這個Math對象有什么用 默認Math.max()代表Math對象內(nèi)的max()方法,不是一個意思嗎
這個數(shù)組在哪一步轉(zhuǎn)換為一串數(shù)值的?

2.當我傳入的對象為null時,運行結(jié)果依然成立,為什么

回答
編輯回答
朕略傻

call和apply的區(qū)別知道吧
call(this, 1, 2, 3, ...);
apply(this, [1, 2, 3, ...]);
用apply就是為了把數(shù)組換成參數(shù)列表,第一個this的位置寫null更好,因為不會污染其他的this上下文環(huán)境,這個位置就是一個占位,沒有實際意義。
你想知道的底層原理需要看apply方法的源碼,那就不是javascript范疇的了,需要看開發(fā)源碼

2018年3月20日 10:25