为什么 jQuery-migrate 不直接在代码中替换折旧函数?

Why jQuery-migrate in not replacing depreciated functions directly in the code?

我在一个大项目上使用 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 这样它 就存在 如果有任何东西试图在运行时访问它就简单多了。