• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • Reflect.apply()

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

    语法

    Reflect.apply(target, thisArgument, argumentsList)
    

    参数

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

    返回值

    返回值是调用完带着指定参数和this值的给定的函数后返回的结果。

    异常

    如果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"
    

    上篇:Reflect.set()

    下篇:Reflect.has()