在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ apply方法困惑

apply方法困惑

正在牛客網(wǎng)做題目,遇到一個題,題目:
實現(xiàn)函數(shù) callIt,調(diào)用之后滿足如下條件
1、返回的結(jié)果為調(diào)用 fn 之后的結(jié)果
2、fn 的調(diào)用參數(shù)為 callIt 的第一個參數(shù)之后的全部參數(shù)
有人是這么解決的:(第一種方法能明白,為什么第二種方法是這樣寫的呢?shift不是返回的是被刪除的第一個元素嗎,為什么apply方法就只調(diào)用了,都沒出現(xiàn)fn是怎么調(diào)用的??不是很理解 )
clipboard.png

回答
編輯回答
瘋浪

那是[].shift.call(a)

也就是a.shift(),主要是arguments不是數(shù)組類型的,所以需要使用call的方式將[].shift()this改為arguments,從而使argumengs能使用shift方法。


function callIt(){
 var fn = [].shift.call(arguments)
 var newArguments = arguments
 return fn.apply(null, newArguments)
}
2018年2月7日 18:06