如何在 Javascript 中恢复被覆盖函数的原始状态

w43*_*43L 4 javascript

假设您有一个脚本需要在覆盖 javascript 的 JSON 的页面上运行。stringify,您将如何确保您的代码将使用原始的 stringify 而不是被覆盖的?

小智 5

虽然我会选择其他答案之一,但这里是以下情况的解决方案:

  1. 页面无法更改,因此;
  2. 代码不能在覆盖 JSON.stringify 的代码之前运行,因此;
  3. 代码无法保存原始函数对象(以恢复它或稍后显式使用它)。

这是一个黑客:

  1. 创建一个 IFRAME 元素。
  2. 访问contentWindowIFRAME 元素的属性;这应该包含原始的(或“一个新的未触及的”)JSON 对象,从而包含原始的 JSON.stringify 函数。

这是jsfiddle