javascript - 为什么 jQuery-migrate 不直接在代码中替换折旧的函数?
问题描述
我在一个大项目上使用 jQuery-migrate。我纠正了所有可能的警告,但现在警告在库中。
有些库不再更新,因此我无法更新它们以使它们与 jQuery-3.3.1 一起使用。另外,我不能直接在库中替换折旧的函数,因为它会产生错误。
所以我认为我会在我的项目中保留 jQuery-migrate。
我的问题是:如果 jQuery-migrate 能够在调用时更正折旧的函数,为什么它不能直接在代码中更正它们?
解决方案
JavaScript 不适合静态代码分析。
假设您需要替换该foo
功能。
如果调用它的代码很简单,那将是相当微不足道的:
something.foo();
如果是这样的话,它会变得相当困难:
function call(bar, method) {
bar[method]();
}
call(something, "foo");
……如果到达那里所需的逻辑更复杂,那就更难了。
如果有任何东西试图在运行时访问它,那么创建something.foo
它就存在了,这要简单得多。
推荐阅读
- javascript - 修复期间前后的字母,即使在不同的 div 内
- reactjs - 在 ReactJS 上,当 api 调用得到令牌过期错误时,自动重定向 Auth 页面的最佳方法是什么?
- vim - 如何全局删除VIM中尖括号之间的所有内容?
- javascript - 如何将数组映射到另一个对象数组
- bash - 运行 shell 脚本会启动新的 shell 而不是运行 shell 脚本
- javascript - 检查匹配的键是否相等
- html - 如何在 div 标签内向上移动 ap 标签?
- swift - 在 Swift 中初始化类的问题
- azure - 有没有办法在不打开路由的情况下连接到具有私有 IP 的 AKS 节点?
- java - java - 如何在java中一一获取来自Kafka Consumer的消息?