拦截所有javascript中的函数调用

问题描述 投票:2回答:1

我想做的是拦截javascript中的所有函数调用,如果它们是由 new Functionfunction.

换句话说,要或许为所有将要创建的函数做一个Proxy。在函数初始代码之前执行一些代码。

所以我的问题是。

  1. 有什么方法可以做到这一点吗?

  2. 有办法改变Function.prototype吗?它是内置的可配置:false。能否改变。

  3. 我想在electron中做这个,所以我可以改变V8的标志,启用实验。

  4. 能否通过使用 --allow_natives_syntax 标志?

  5. 有没有办法改变内部[[Call]]?

我知道为什么我不应该这样做的所有原因。我只对一个可以做到的方法感兴趣。

javascript electron hook v8
1个回答
2
投票
  1. 有什么方法可以做到这一点?

没有。

  1. 有办法改变Function.prototype吗?它是内置的configable:false。可以改变吗?

不可以。

  1. 如果使用--allow_natives_syntax标志启用原生函数,可以做到这一点吗?

不可以。

  1. 有办法改变内部[[Call]]吗?

没有。

如果你只是对跟踪函数调用感兴趣,你可以使用V8现有的 --trace 标志。在JavaScript中不可能复制该功能(否则该标志就不会存在)。

© www.soinside.com 2019 - 2024. All rights reserved.