javascript - Javascript。如何使用原始 JSON 对象(由另一个开发人员重新定义)
问题描述
我有一个简单的 JS 代码,例如:
JSON.stringify({'a':'b'});
在我的网页上独立运行时可以正常工作。但是当我的代码放在生产环境中时,一些额外的 javascript 文件完全破坏了我的代码。这些额外的 js 文件之一具有 JSON 对象重新定义。现在我的代码正在使用我不想使用的这个版本的 JSON 对象。
如何告诉 javascript 使用内置 JSON 对象,而不是自定义对象?
一些澄清:这个 JSON 对象重新定义是在核心 javascript 生产库中完成的(我的代码插入到旧的 CMS 中)。看起来核心开发人员想为旧浏览器创建自己的 polyfill。我害怕更改他的代码。
先感谢您!
解决方案
到目前为止,您最好的选择是不包含重新定义的文件JSON
,因为JSON
规范以特定方式定义,不应该被做不同事情的东西覆盖。很多事情都可能会破坏(不仅仅是您的代码)。
如果你不能这样做,你有几个选择:
确保您的脚本是第一个,并为您的脚本创建一个私有的局部变量并分配
JSON
给它,然后使用该局部变量。您甚至可以制作 localJSON
,如下所示:;((JSON) => { // ...your code here... ))(JSON);
如果您的脚本必须在另一个脚本之后,则在它之前放置一个新脚本以保存原始脚本
JSON
:const originalJSON = JSON;
然后,再次在您的代码中使用它,可能像这样:
;((JSON) => { // ...your code here... ))(originalJSON);
推荐阅读
- php - RegEx从标点符号中删除空格后,如何解决连接词问题?
- matlab - 为每次迭代绘制新图
- android - 如果没有活动的第一个片段中的处理程序,动画将无法工作
- android - 只有在取消滑动后点击后,Delete-drawable 才会被清除
- c++ - 大型项目的默认文件夹设置
- php - 我想在循环内做一个乘法,但值没有增加
- indexing - 具有单列索引的多维范围查询
- c++ - Eigen 中的多线程(未使用 OpenMP)
- c - signal_connect 函数中的指针工作不正确
- reporting-services - SSRS Reportviewer 工具栏(打印按钮、下一步按钮等)不显示颜色且不成一行