JavaScript не подходит для статического анализа кода.
Скажем, вам нужно заменить функцию foo
.
Это было бы довольно тривиально, если бы код, вызвавший его, был просто:
something.foo();
Это становится довольно сложнымесли это:
function call(bar, method) {
bar[method]();
}
call(something, "foo");
… и еще сложнее, если логика, необходимая для этого, была более сложной.
Создание something.foo
, так что просто существует если что-то попытаться получить к нему доступ во время выполнения, намного проще.