日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
JavaScript中call()、apply()、bind()方法特點講解

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

站在用戶的角度思考問題,與客戶深入溝通,找到徽縣網(wǎng)站設計與徽縣網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名申請、網(wǎng)絡空間、企業(yè)郵箱。業(yè)務覆蓋徽縣地區(qū)。

兩者的相同之處:

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

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

兩者不同之處:

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

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

案例:

 
 
 
  1. // apply()方法
  2. obj.apply(thisObj,['arg1', 'arg2'])
  3. // call()方法
  4. 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. // add繼承了sub方法
  13. console.log(sub(5, 3)); //2
  14. console.log(sub.call(add, 5, 3)); //2
  15. console.log(sub.apply(add, [5, 3])); //2
  16. // 例2:
  17. var person = function(){
  18.   this.name = "Tom";
  19.   this.age = 22;
  20. }
  21. var other = {};
  22. console.log(other); // {}
  23. // other繼承了person的屬性
  24. person.call(other);
  25. 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

當前名稱:JavaScript中call()、apply()、bind()方法特點講解
瀏覽路徑:http://m.5511xx.com/article/coipcpc.html