📜  JavaScript | Reflect.apply() 方法

📅  最后修改于: 2022-05-13 01:56:30.241000             🧑  作者: Mango

JavaScript | Reflect.apply() 方法

Reflect.apply() 方法是 JavaScript 中的标准内置对象,用于使用指定参数调用函数。它的工作方式类似于函数.prototype.apply()方法来调用函数,但以一种高效且易于理解的方式。
句法:

Reflect.apply(target, thisArgument, argumentsList)

参数:此方法接受三个参数,如上所述,如下所述:

  • target:这个参数是要调用的目标函数。
  • thisArgument:此参数具有调用目标函数所需的 this 值。
  • ArgumentsList:此参数是一个类似数组的对象,用于指定应该调用目标的参数。

返回值:调用给定的目标函数导致指定的 this 值和参数。
异常:当目标不可调用时,TypeError 是作为结果给出的异常。
下面的示例说明了 JavaScript 中的Reflect.apply() 方法
示例 1:传递列表参数并创建字典对象。

javascript
function geeks1 (a, b, c) { 
    this.x = a; 
    this.y = b; 
    this.z = c; 
}const obj = {}; 
Reflect.apply ( geeks1 , obj, [12,42,32] ); 
console.log( obj );


javascript
var geeks2 = function() { console.log(this); } 
Reflect.apply(geeks2, 'GeeksforGeeks', []); 
   
var list= [31, 45, 143, 5]; 
console.log(Reflect.apply(Math.min, undefined, list));


javascript
// Converting the list of integer into char string
console.log(Reflect.apply(String.fromCharCode,
    undefined, [103, 101, 101, 107, 115, 102,
          111, 114, 103, 101, 101, 107, 115]))
  
// Extract the indexed value of string(character)
console.log(Reflect.apply(''.charAt, 'shubham', [3]))


输出:

{ x: 12, y: 42, z: 32 }

示例 2:在此示例中,传递了空列表参数并调用了函数。第二部分包含数学计算,从列表中找到最小元素。

javascript

var geeks2 = function() { console.log(this); } 
Reflect.apply(geeks2, 'GeeksforGeeks', []); 
   
var list= [31, 45, 143, 5]; 
console.log(Reflect.apply(Math.min, undefined, list));

输出:

String { "GeeksforGeeks" }
5

示例 3:

javascript

// Converting the list of integer into char string
console.log(Reflect.apply(String.fromCharCode,
    undefined, [103, 101, 101, 107, 115, 102,
          111, 114, 103, 101, 101, 107, 115]))
  
// Extract the indexed value of string(character)
console.log(Reflect.apply(''.charAt, 'shubham', [3]))

输出:

geeksforgeeks
b

支持的浏览器: JavaScript Reflect.apply() 方法支持的浏览器如下:

  • 谷歌浏览器 49 及更高版本
  • 边缘 12 及以上
  • 火狐 42 及以上
  • Opera 36 及以上
  • Safari 10 及更高版本