JS Proxy apply()

🌙
手机阅读
本文目录结构

handler.apply() 方法用于拦截函数的调用。

此交互式示例的源代码存储在GitHub存储库中。 如果您想为交互式示例项目做出贡献,请克隆 https://github.com/mdn/interactive-examples 并向我们发起拉取请求

语法

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

参数

以下是传递给apply方法的参数,this上下文绑定在handler对象上.

target

目标对象(函数)。

thisArg

被调用时的上下文对象。

argumentsList

被调用时的参数数组。

返回值

apply方法可以返回任何值。

描述

handler.apply 方法用于拦截函数的调用。

拦截

该方法会拦截目标对象的以下操作:

约束

如果违反了以下约束,代理将抛出一个TypeError:

target必须是可被调用的。也就是说,它必须是一个函数对象。

示例

以下代码演示如何捕获函数的调用。

var p = new Proxy(function() {}, {
  apply: function(target, thisArg, argumentsList) {
    console.log('called: ' + argumentsList.join(', '));
    return argumentsList[0] + argumentsList[1] + argumentsList[2];
  }
});

console.log(p(1, 2, 3)); // "called: 1, 2, 3"
                         // 6

规范

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)[[Call]] Standard Initial definition.
ECMAScript Latest Draft (ECMA-262)[[Call]] Draft  

另见

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了