日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

JS call()和apply()方法和区别

發布時間:2025/3/15 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JS call()和apply()方法和区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、方法定義:

  • apply:調用一個對象的一個方法,用另一個對象替換當前對象。例如:B.apply(A, arguments);即A對象應用B對象的方法。
  • call:調用一個對象的一個方法,用另一個對象替換當前對象。例如:B.call(A, args1,args2);即A對象調用B對象的方法。

call 與 apply 的相同點:

  • 方法的含義是一樣的,即方法功能是一樣的;
  • 第一個參數的作用是一樣的;

call 與 apply 的不同點:兩者傳入的列表形式不一樣

  • call可以傳入多個參數;
  • apply只能傳入兩個參數,所以其第二個參數往往是作為數組形式傳入

二、舉栗:

1. call()、 apply()、 bind() 都是用來重定義this這個對象的!

例:

?

2.對比call、 bind、 apply 傳參情況下

答案:

三者之間差距很小!

從上面的結果來看:

call、 bind、 apply 這三個函數的第一個參數都是this的指向對象,第二個參數差別就來了:

call 的參數是直接放進去的,第二第三第n個參數全都用逗號分隔,直接放到后面obj.myFun.call(db,'江西', ..., 'string')。

apply的所有參數都必須放在一個數組里面傳進去。

bind除了返回函數以外,它的參數和call 一樣。

當然,三者的參數不限定是String 類型,允許是各種類型,包括函數,對象等等。

總結

以上是生活随笔為你收集整理的JS call()和apply()方法和区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。