1. 程式人生 > >apply的“非改變this“的用法

apply的“非改變this“的用法

最終 image 重新 this 因此 his call ply 不變

說到apply,大家都是知道是改變this指向的,也都會立馬和call聯系在一起,MDN官網上也是如是說:

技術分享

其實我們在平常使用call和apply的時候,都是想到他們的改變函數的this的功能,

正如MDN上面說的apply和call只有唯一一點區別,就是:apply方法的二個參數接受的是“參數數組”!

也就是說:apply的第二個“參數數組”最終會打散被調用apply的函數所調用;

因此我們也可以利用這一特性,進行數組的打散的操作,如MDN中所述:

技術分享

當然我們這裏也可以使用ES6的擴張語句,如下:

技術分享

之所以要寫這篇文章就是告誡自己:思維不要太局限,就像覺得apply就只能用於改變this的指向的功能。當我們咋一看Math.max.apply

(null, arr)這種會蒙圈,其實這裏就是省去了自己展開了數組的操作。

在發現疑惑的時候,可以放空自己的過去的知識,重新閱讀API。重新去思考這個問題。

就像自己以前做物理題目,腦子裏永遠別記憶題型,腦子裏只需要記住公式和原理,所有的題目都是去思考分析再解答,以不變應萬變!!而不是把題目歸類,再回憶改類題型的解題方法。

apply的“非改變this“的用法