亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

apply和Math.max()函數在JavaScript中有什么區別

發布時間:2021-02-03 12:23:33 來源:億速云 閱讀:136 作者:Leah 欄目:web開發

這期內容當中小編將會給大家帶來有關apply和Math.max()函數在JavaScript中有什么區別,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

如下所示:

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(作用域鏈,參數)這個方法,這個函數的“參數”,接收一個數組,并且是將數組中的每個值,分開來,傳遞給調

補充:

Javascript中Math.max.apply和Math.max的區別

Javascript中的Math.max方法可以求出給定參數中最大的數。

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

上述就是小編為大家分享的apply和Math.max()函數在JavaScript中有什么區別了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平原县| 奉化市| 漳浦县| 威远县| 青田县| 仁寿县| 武川县| 寿宁县| 志丹县| 乌拉特前旗| 奈曼旗| 弋阳县| 民权县| 海南省| 蓝田县| 宾川县| 泸西县| 潢川县| 湖南省| 信丰县| 武安市| 锦州市| 麦盖提县| 府谷县| 南昌县| 五大连池市| 南汇区| 栾城县| 利川市| 吉林市| 遂平县| 泽库县| 兰溪市| 中山市| 二连浩特市| 镇康县| 和顺县| 浦江县| 永春县| 陆河县| 临夏市|