1. 程式人生 > >call() 和 apply() 的作用與區別

call() 和 apply() 的作用與區別

call() 和 apply()

簡單來說,call() 和 apply() 的作用就是改變 this 的指向,區別就是傳參列表不同。

貓吃魚,狗吃肉,奧特曼打小怪獸
有一天,狗想吃魚了
貓.吃魚.call(狗,魚)
狗就吃到魚了
貓成精了,想打怪獸
奧特曼.打怪獸.call(貓,小怪獸)

objA.call(objB, arg1, arg2, ...)
objA.apply(objB, [arg1, arg2, ...])

兩者都是把 objA 繫結到 objB 上,這個時候 objB 就有了 objA 的屬性和方法,或者說 objB 繼承了 objA 的屬性和方法

用 js 實現 call() 和 apply()

…待完成