Почему jQuery-migrate не заменяет устаревшие функции непосредственно в коде? - PullRequest
0 голосов
/ 09 апреля 2019

Я использую jQuery-migrate для большого проекта. Я исправил все предупреждения, которые мог, но теперь предупреждения находятся внутри библиотек.

Некоторые библиотеки больше не обновляются, поэтому я не могу обновить их, чтобы они работали с jQuery-3.3.1. Кроме того, я не могу заменить устаревшие функции непосредственно в библиотеках, потому что это создает ошибки.

Так что я думаю, что я сохраню jQuery-migrate в моем проекте.

Мой вопрос : Если jQuery-migrate может исправлять устаревшие функции при вызове, почему он не может исправить их непосредственно в коде?

1 Ответ

0 голосов
/ 09 апреля 2019

JavaScript не подходит для статического анализа кода.

Скажем, вам нужно заменить функцию foo.

Это было бы довольно тривиально, если бы код, вызвавший его, был просто:

something.foo();

Это становится довольно сложнымесли это:

function call(bar, method) {
    bar[method]();
}

call(something, "foo");

… и еще сложнее, если логика, необходимая для этого, была более сложной.


Создание something.foo, так что просто существует если что-то попытаться получить к нему доступ во время выполнения, намного проще.

...