您的位置:首頁技術文章
文章詳情頁

javascript - js一個call和apply的問題?

瀏覽:110日期:2023-02-14 17:03:55

問題描述

Array.call(null,{length:3}//返回[{length:3}]Array.apply(null,{length:3})//返回[undefined, undefined, undefined]

call和apply都是改變this指向,到這里結果卻不一樣,詭異了

問題解答

回答1:

寫這里,方便看。

call:第一個是直接傳對象進去;

apply:第二個是當成數組長度為3的數組,但沒有值,所以undefined{length: 3} => {length: 3, 0: undefined, 1: undefined, 2: undefined }所以輸出3個undefined

call接受的是連續參數,apply接受的是數組參數。A.call(this, a,b,c,d)A.apply(this, [a,b,c,d])

回答2:

call()方法第二個參數是數組里面的一項,

apply()方法第二個參數是一個數組

標簽: JavaScript
相關文章:
国产综合久久一区二区三区