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 及更高版本