成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JavaScript中call()、apply()、bind()方法特點(diǎn)講解

開發(fā) 前端
在javascript中,每個對象中都會有一個apply()方法和一個call()方法,兩者作用是都可以替代另一個對象調(diào)用一個方法,將一個函數(shù)的上下文改變成由thisObj指向的新對象。

[[406250]]

在javascript中,每個對象中都會有一個apply()方法和一個call()方法

兩者的相同之處:

兩者作用是都可以替代另一個對象調(diào)用一個方法,將一個函數(shù)的上下文改變成由thisObj指向的新對象

當(dāng)我們通過call和apply來this的指向時(shí),不傳任何參數(shù),則默認(rèn)為將this指向修改為windows,有參數(shù)時(shí)會指向第一個參數(shù)

兩者不同之處:

apply最多只能有兩個參數(shù)——新this對象和一個數(shù)組argArray。如果給該方法傳遞多個參數(shù),則把參數(shù)都寫進(jìn)這個數(shù)組里面,當(dāng)然,即使只有一個參數(shù),也要寫進(jìn)數(shù)組里。如果argArray不是一個有效的數(shù)組或arguments對象,那么將導(dǎo)致一個TypeError。如果沒有提供argArray和thisObj任何一個參數(shù),那么Global對象將被用作thisObj,并且無法被傳遞任何參數(shù)。

call它可以接受多個參數(shù),第一個參數(shù)與apply一樣,后面則是一串參數(shù)列表。這個方法主要用在js對象各方法相互調(diào)用的時(shí)候,使當(dāng)前this實(shí)例指針保持一致,或者在特殊情況下需要改變this指針。如果沒有提供thisObj參數(shù),那么 Global 對象被用作thisObj。

案例:

  1. // apply()方法 
  2. obj.apply(thisObj,['arg1''arg2']) 
  3.  
  4. // call()方法 
  5. obj.call(thisObj,'arg1','arg2','arg3'

 以上thisObj繼承了obj的屬性和方法

  1. // 例1: 
  2. function add(j, k){ 
  3.   return j+k; 
  4.  
  5. function sub(j, k){ 
  6.   return j-k; 
  7.  
  8. // sub繼承了add方法 
  9. console.log(add(5,3)); //8 
  10. console.log(add.call(sub, 5, 3)); //8 
  11. console.log(add.apply(sub, [5, 3])); //8 
  12.  
  13. // add繼承了sub方法 
  14. console.log(sub(5, 3)); //2 
  15. console.log(sub.call(add, 5, 3)); //2 
  16. console.log(sub.apply(add, [5, 3])); //2 
  17.  
  18. // 例2: 
  19. var person = function(){ 
  20.   this.name = "Tom"
  21.   this.age = 22; 
  22. var other = {}; 
  23.  
  24. console.log(other); // {} 
  25. // other繼承了person的屬性 
  26. person.call(other); 
  27. console.log(other); // {name"Tom", age: 22} 

 bind綁定:

call()方法和apply()方法在綁定后會立即執(zhí)行,而bind則不會立即執(zhí)行

  1. add.bind(sub, 5, 3); // 返回的是add方法函數(shù)本體 
  2. add.bind(sub, 5, 3)(); // 8 

 【編輯推薦】

 

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2015-03-02 09:22:09

Javascript函數(shù)用法apply

2017-10-10 14:36:07

前端Javascriptapply、call、

2024-08-26 14:35:19

JavaScript關(guān)鍵字對象

2021-12-05 08:27:56

Javascript 高階函數(shù)前端

2024-03-15 08:21:17

bindJavaScrip函數(shù)

2024-08-26 08:36:26

2024-08-20 16:04:27

JavaScript開發(fā)

2011-03-22 09:49:15

JavaScript

2021-06-09 07:01:30

前端CallApply

2021-11-30 06:56:58

CallApply函數(shù)

2023-06-28 08:34:02

Bind()函數(shù)JavaScript

2010-04-30 16:08:20

Unix內(nèi)核

2009-03-10 11:18:13

2009-06-24 11:12:17

callerJavascript

2010-03-03 14:16:48

Python ZipF

2015-12-24 09:48:40

JavaScriptthis指針深

2010-06-17 14:34:18

Rsync 使用

2010-04-30 14:51:23

Unix系統(tǒng)

2010-05-11 20:17:23

NTLM認(rèn)證協(xié)議

2010-01-06 19:18:22

.NET Framew
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美激情久久久 | 国户精品久久久久久久久久久不卡 | 九九热免费在线观看 | 精品国产一区一区二区三亚瑟 | 婷婷免费在线 | 久久久久国产 | 精品欧美一区二区精品久久久 | 神马久久香蕉 | 久久久久久综合 | 国产剧情一区二区三区 | 亚洲成人日韩 | 国产精品久久久久9999鸭 | 欧美激情在线播放 | 一区二区成人 | 成人在线网址 | 成人影院在线 | 成人欧美一区二区三区在线观看 | 青娱乐av| 91麻豆精品国产91久久久更新资源速度超快 | 亚洲视频免费在线看 | 久久久成人免费视频 | 免费不卡视频 | 国产精品不卡 | 国产婷婷精品 | 一二三四在线视频观看社区 | 欧美视频在线看 | 久久男人 | 亚洲精品第一国产综合野 | 成年人在线视频 | 国产九九av| 欧美一区二区视频 | 中文在线一区二区 | 欧美色性 | 国产精品成人一区二区 | 国产精品资源在线观看 | 日本不卡免费新一二三区 | 成人免费共享视频 | 国产精品视频久久久 | 五月天婷婷激情 | 看片天堂| 国产视频一区二区 |