當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Javascript handler.apply()用法及代碼示例

JavaScript中的handler.apply()方法用作函數調用的陷阱。此方法返回的值用作通過代理進行的函數調用的結果。

用法:

const p = new Proxy(target, {
  apply:function(target, thisArg, argumentsList) {
  }
});

參數:此方法接受上述和以下所述的三個參數:



  • target:此參數保存目標對象。
  • thisArg:此參數用於調用。
  • argumentsList:此參數包含列表作為參數,並用於調用。

返回值:此方法返回任何值。

以下示例說明了JavaScript中的handler.apply()方法:

範例1:

function sum(a, b) { 
  return a + b; 
} 
  
const handler = { 
  apply:function(target, thisArg, argumentsList) { 
    console.log(`Calculate sum:${argumentsList}`); 
  
    return target(argumentsList[0], argumentsList[1])*14/3; 
  } 
}; 
  
const proxy1 = new Proxy(sum, handler); 
  
console.log(sum(23, 4)); 
console.log(proxy1(23, 4));

輸出:

27
"Calculate sum:23, 4"
126

範例2:

var str = function(arg1, arg2) {   
  console.log('geeks get (' + arg1 + ', ' + arg2 + ')');   
};   
var proxy = new Proxy(str, {   
  apply:function(target, thisArg, parameters) {   
   console.log('Geeksforgeeks');   
    
    return target.apply(thisArg, parameters);   
  }   
});   
proxy('Tutorial', 'Jobs');   
    
proxy.apply(null, ['Knowledge', 'internships']);   
proxy.call(null, 'Stipend', 'skills');

輸出:

"Geeksforgeeks"
"geeks get (Tutorial, Jobs)"
"Geeksforgeeks"
"geeks get (Knowledge, internships)"
"Geeksforgeeks"
"geeks get (Stipend, skills)"

支持的瀏覽器:下麵列出了JavaScript處理程序支持的瀏覽器。apply()方法如下:

  • 穀歌瀏覽器
  • Firefox
  • Opera
  • Safari
  • Edge



相關用法


注:本文由純淨天空篩選整理自SHUBHAMSINGH10大神的英文原創作品 JavaScript | handler.apply() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。