MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

这篇翻译不完整。请帮忙从英语翻译这篇文章

静态方法 Reflect.apply() 通过指定的参数列表发起对目标(target)函数的调用。

句法

Reflect.apply(target, thisArgument, argumentsList)

参数

target
目标函数。
thisArgument
target函数调用时绑定的this对象。
argumentsList
target函数调用时传入的实参列表,该参数应该是一个类数组的对象。

异常

如果target对象不可调用,抛出TypeError

描述

该方法与ES5中Function.prototype.apply()方法类似:调用一个方法并且显式地指定this变量和参数列表(arguments) ,参数列表可以是数组,或类似数组的对象。

Function.prototype.apply.call(Math.floor, undefined, [1.75]);

使用 Reflect.apply 方法会使代码更加简洁易懂。

使用示例

Reflect.apply()

Reflect.apply(Math.floor, undefined, [1.75]); 
// 1;

Reflect.apply(String.fromCharCode, undefined, [104, 101, 108, 108, 111]);
// "hello"

Reflect.apply(RegExp.prototype.exec, /ab/, ["confabulation"]).index;
// 4

Reflect.apply("".charAt, "ponies", [3]);
// "i"

规范

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
Reflect.apply
Standard 首次定义.
ECMAScript 2017 Draft (ECMA-262)
Reflect.apply
Draft  

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 49 42 (42) 未实现 未实现 未实现
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 未实现 未实现 42.0 (42) 未实现 未实现 未实现

相关连接

文档标签和贡献者

 此页面的贡献者: IAIAE
 最后编辑者: IAIAE,