日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

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

發布時間:2025/3/15 javascript 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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()方法和区别的全部內容,希望文章能夠幫你解決所遇到的問題。

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