js函數(shù)apply()的用法有以下幾種:
調(diào)用函數(shù)并設(shè)置this的值:apply()方法可以調(diào)用一個(gè)函數(shù),并設(shè)置函數(shù)內(nèi)部的this指向。語法為:functionName.apply(thisValue, [arguments])。其中,thisValue是要設(shè)置的this的值,arguments是一個(gè)數(shù)組或類數(shù)組對象,表示傳遞給函數(shù)的參數(shù)。
調(diào)用函數(shù)并傳遞參數(shù):apply()方法可以調(diào)用一個(gè)函數(shù),并傳遞參數(shù)。語法為:functionName.apply(this, argsArray)。其中,argsArray是一個(gè)數(shù)組或類數(shù)組對象,表示傳遞給函數(shù)的參數(shù)。
借用其他對象的方法:apply()方法可以借用其他對象的方法。通過apply()方法,可以將一個(gè)對象的方法應(yīng)用于另一個(gè)對象,從而實(shí)現(xiàn)方法的復(fù)用。
數(shù)組操作:apply()方法可以將一個(gè)數(shù)組作為參數(shù),傳遞給另一個(gè)函數(shù)。常見的用法是將Math對象的方法應(yīng)用于數(shù)組,實(shí)現(xiàn)對數(shù)組的操作,如Math.max.apply(null, array)可以找到數(shù)組中的最大值。
需要注意的是,apply()方法在ES6中已經(jīng)被箭頭函數(shù)和擴(kuò)展運(yùn)算符替代,因此在新的代碼中更推薦使用箭頭函數(shù)和擴(kuò)展運(yùn)算符來實(shí)現(xiàn)apply()的功能。