如何重写javascript中的eval函数?

2023-11-21

例如:

(function() {
      var proxied = window.eval;
      window.eval = function() {
        return proxied.apply(this, arguments);
      };
    })();

但这段代码不起作用。


eval是魔法。与“真实”函数不同,它可以在调用者中读取和写入局部变量:

function foo() {
    var a= 1;
    eval('a+= 1');
    alert(a); // 2
}

替换那个eval使用代理函数,你会遇到一个问题:a+= 1在范围内执行proxied函数而不是foo。根据评估代码中发生的情况,可能会导致值丢失、代理本地损坏、意外全局变量等等。

因此无法替代eval具有完全工作的代理。 (对于不需要当地人的简单情况,你可以侥幸逃脱。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何重写javascript中的eval函数? 的相关文章

  • createHTMLNotification() 替换

    我创建了一个 Chrome 扩展程序 其中使用createHTMLNotification 在所有内容之上显示一个窗口 然而 从 Chrome 28 开始 谷歌决定放弃createHTMLNotification 完全 为什么 谷歌 为什么
  • 使用本地存储在从另一个表保存的 HTML TABLE 中打印 JSON,以便我在另一个页面上打印我的表

    在我的作业中 我必须使用用户输入中的数据并将数据保存在本地存储中 我必须以水平表格式将这些数据从本地存储打印到其他页面 为此 我编写了用于用户输入并将数据保存在本地存储中的代码 div p p div
  • Firebase,只得到新的孩子[重复]

    这个问题在这里已经有答案了 var firebase new Firebase firebaseRef on child added function snapshot 这将接收所有元素 有没有办法在创建新的 Firebase 引用时不接收
  • Vue 3 Composition API 提供/注入在单文件组件中不起作用

    我正在使用 Composition API 在 VueJS 3 中创建一个库 我实现了提供 注入 如中所述docs https v3 vuejs org guide composition api provide inject html i
  • 位置特征检测:固定

    我正在尝试找到一个脚本来检测设备是否放置position fixed元素相对于视口而不是整个文档 目前 标准桌面浏览器和 Mobile Safari 适用于 iOS 5 都是这样做的 而 Android 设备则相对于整个文档放置固定元素 我
  • 如何在没有 jQuery 的情况下删除 Javascript 中的元素

    我试图通过以下方式从 DOM 中删除 Div a 标签嵌套在其中 我想我正在寻找的是 jQuery 的纯 Javascript 版本 div remove 这是html设置 div a href Click me to remove the
  • 本地推送通知到在应用程序内运行 JS 代码的 Win8 Live Tile

    我正在尝试将更新发送到我的应用程序的磁贴 当应用程序运行时 这可以正常工作 例如 当用户单击按钮时 我可以轻松地将磁贴更新通知发送到磁贴 我无法解决的是当应用程序无法运行时如何更新磁贴 我找到的唯一选择是使用以下命令从远程 Web 服务器拉
  • 按下回车键时不刷新页面

    我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
  • JavaScript 中的 Promise 有什么意义?

    一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
  • React Router v4 不渲染组件

    React Router v4 渲染组件存在问题 在应用程序初始加载时 它将呈现与 URL 相对应的正确组件 但是 任何后续的组件Link单击不会呈现所需的组件 图书馆 反应路由器 4 2 2 https reacttraining com
  • 计算三次贝塞尔曲线的弧长、曲线长度。为什么不工作?

    我正在用这个算法计算弧长 三次贝塞尔曲线的长度 function getArcLength path var STEPS 1000 gt precision var t 1 STEPS var aX 0 var aY 0 var bX 0
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • JavaScript eval("{}") 返回行为?

    根据ECMA 262 规范 http www ecma international org publications files ECMA ST Ecma 262 pdf 以下语句返回1 eval 1 eval 1 eval 1 var a
  • 使用 next.js 进行服务器端渲染与传统 SSR

    我非常习惯 SSR 意味着页面得到完全刷新并从服务器接收完整 HTML 的方法 其中根据后端堆栈使用 razor pub other 进行渲染 因此 每次用户单击导航链接时 它只会向服务器发送请求 整个页面将刷新 接收新的 HTML 这就是
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • 滚动顶部不符合预期

    Note 由于上次忘记奖励而重新开放赏金 A Woff 大师已经给出答案 我想在用户展开某一行时到达该行 这样当最后一个可见行展开时 用户不必向下滚动即可查看内容 I used example tbody on click td green
  • Flot 库将 y 轴设置为最小值 0 和最大值 24

    如何将 y 轴设置在 0 到 24 的范围内 这是我的代码 j plot j placeholder d1 xaxis mode time min new Date 2010 11 01 getTime max new Date 2011
  • 如何从 json 文件创建模型? (ExtJS)

    这是我想使用 json 文件创建的模型 Ext define Users extend Ext data Model fields name user id type int name user name type string 为了根据服
  • 仅当显式选择行时才关闭 ui-bootstrap typeahead

    我创建了这个jsBin http jsbin com livuqafe 2 edit来证明我遇到的问题 如果您转到此处 请尝试输入 五 并继续 你的自然反应是输入 五 然后按 Tab 如果你想要 五百 你可以向下箭头一次 但是 在这种情况下
  • 测量窗口偏移

    有没有一种方法可以测量 jQuery 中窗口的偏移量 以便我可以比较 固定 元素和相对定位元素的位置 我需要能够知道窗口滚动了多远 以便我可以使用该图来计算固定元素的高度 相对于视口顶部 和相对对象的高度 相对于顶部 之间的差异文件的内容

随机推荐

  • PHP / SQLite - 将表从磁盘复制到内存

    我的硬盘上有一个 sqlite3 数据库 file db 有 5 个表 我想将其中 3 个表复制到内存数据库 memory 有没有一种简单的方法可以使用 PHP5 的 PDO 格式来做到这一点 不是特定于 pdo 的解决方案 对于您的情况可
  • Windows 是否有集成的内置 C/C++ 编译器包?

    我希望能够在 Windows 环境下编译 C 和 C 代码 而无需使用 IDE 只需使用 Windows 命令提示符 cmd exe 即可 我来自 Linux 您可以在其中安装gcc只需在终端中使用命令即可打包 sudo apt insta
  • 如何禁用动态频率缩放?

    我想做一些微基准测试 并尝试做正确的事情 不幸的是 动态频率缩放使得基准测试非常不可靠 有没有办法以编程方式 C Windows 查明是否启用了动态频率缩放 如果 可以在程序中禁用它吗 我尝试在实际基准测试发生之前使用 100 CPU 的预
  • 无论线条大小如何保持线型间距恒定

    当尺寸不同时 我一直尝试在 ggplot2 或网格中绘制线段之间具有相等间距的线 但是我没有成功 所以我请求你的帮助 在下面的示例中 如何在线条尺寸不同的情况下保持线段之间的绝对间距相等 我想避免定制makeContent myclass我
  • 如何在smarty模板中解析/解码JSON对象?

    我的模板文件中有以下代码 foreach from items item entry pre entry gt nb persons print r pre foreach 输出是 json 字符串 ip 12 12 12 12 date
  • Laravel 喜欢 Eloquent 的数组值吗?

    如何进行 Like 查询并搜索多个值 searchWords explode Input get search 然后我得到了用于搜索的一组单词 我怎样才能通过它 pages Page where content LIKE singleWor
  • 自动批准评论插件中的所有评论

    有没有办法自动批准并默认公开所有评论插件的评论 另外 我真的需要知道这些评论是在什么基础上进行审核的 在某些页面上 它们默认是公开的 而在其他页面上 它们最终会进入审核队列 更新 0 我删除了脸书 管理员 审核 UI 消失 但审核仍然有效
  • 使用 Zend Framework 安全地运行 Cron 作业

    我看过很多关于 cron 和 ZF 的帖子 但大多数解决方案都让工作可以由公众触发运行 如果你想设置一个只能由 cron 运行的操作怎么办 不是由某个匿名用户也不是由必须登录的人 我使用的解决方案涉及将一个文件放在我的 Web 根目录之外
  • 在 Javascript 中播种随机数生成器

    是否可以为随机数生成器提供种子 Math random 在 JavaScript 中 不 不可能播种Math random The ECMAScript 规范故意在这个主题上含糊其辞 不提供播种方式 也不要求浏览器使用相同的算法 所以这样的
  • 提交前获取应用程序的 iTunes 链接

    我在另一篇文章中读到 您可以在没有二进制文件的情况下提交应用程序 但根据我所看到的 这不再可能 看来没有二进制文件就无法提交 并且二进制文件是通过应用程序加载器提交的 在提交二进制文件之前 还有其他已知的方法可以获取指向我的应用程序的 it
  • 我不明白 sigma 表示法和 for 循环

    我有一本书说 并说这相当于说 for i 1 i lt N i Sum i 它进一步说利用这个简单的公式 因为 最大值 最小值 1 它说将其更改为 C 代码将是 for k j k lt 1 k Sum k 但是 我真的无法理解这一点 谁能
  • 为什么浏览器无法发送gzip请求?

    如果网络服务器可以发送 gzip 响应 为什么浏览器不能发送 gzip 请求 客户端和服务器必须就如何通信达成一致 其中一部分是通信是否可以被压缩 HTTP 被设计为请求 响应模型 最初的创建几乎可以肯定地设想总是有小请求和潜在的大响应 压
  • 如何在一个屏幕而不是整个应用程序中处理退出应用程序 - React Native?

    我有一些问题返回处理程序 问题是 运行应用程序并转到 注册 屏幕并触摸手机背面时 他们将运行该功能并显示警报进行确认 但现在当我转到任何其他屏幕并触摸背面时 他们将需要每次返回时就返回上一个屏幕 BackHandler exitApp 运行
  • 将断点保存到文件

    调试 Python 代码时 我从命令行通过 ipdb 运行脚本 并设置了多个断点 然后我对一个或多个模块进行一些更改 然后重新运行 但是 如果我只是使用运行模块不要重新加载 为了确保它们确实如此 我可以完全存在并重新启动Python 但随后
  • 如何获得英文的 boost::system::error_code::message ?

    在具有本地化 UI 的 Win7 上 error code message 返回非英语消息 据我所知 在 Boost 1 54 中 对于system error category 上面的函数归结为以下 WinAPI 调用 DWORD ret
  • 如何使用 ExecutorService 等待所有线程完成?

    我需要一次执行 4 个任务 如下所示 ExecutorService taskExecutor Executors newFixedThreadPool 4 while taskExecutor execute new MyTask wai
  • 如何在 macOS 或 OS X 上安装 pip?

    这个问题的答案是社区努力 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 昨天我花了一整天的时间寻找安装的明确答案pip Python 的包管理器 我找不到好的解决办法 我该如何安装它 在 Linux 或 MacOS 上 python
  • 在 Laravel Homestead 上使用 SSL

    我正在使用 Laravel Homestead 它运行良好 现在我想在我的一个网站上实施 HTTPS 我发现要实现这一点 你只需要添加ssl true进入 Homestead yaml 然后运行 vagrant reload provisi
  • 使用 pywin32 控制 Adob​​e Acrobat 时出现“未实现”异常

    我使用 pywin32 在 python 中编写了一个脚本 将 pdf 文件保存为文本 直到最近都工作正常 我在 Excel 中使用类似的方法 代码如下 def pdf2Txt self pdf fileformat com adobe a
  • 如何重写javascript中的eval函数?

    例如 function var proxied window eval window eval function return proxied apply this arguments 但这段代码不起作用 eval是魔法 与 真实 函数不同