在线文档教程

Proxy.handler.apply

Proxy.handler.apply

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

语法

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

参数

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

target目标对象(函数)。

返回值

apply方法可以返回任何值。

描述

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

拦截

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

  • proxy(...args)

  • Function.prototype.apply() and Function.prototype.call()

  • Reflect.apply()

约束

无。

示例

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

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

规范

SpecificationStatusComment
ECMAScript 2015 (6th Edition, ECMA-262)The definition of '[Call]' in that specification.StandardInitial definition.
ECMAScript 2017 Draft (ECMA-262)The definition of '[Call]' in that specification.Draft

浏览器兼容性

FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support?18 (18)???

FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support??18.0 (18)???