Есть ли способ узнать, будет ли изменена или переопределена функция, которую я написал? Например, скажем, парень по имени Джек имеет функцию ниже:Есть ли способ узнать, написана ли функция в JavaScript?
// Jack's function on team 1
function doSomething() {
// doing things
}
и один день, когда он узнает, что товарищ по команде на северном полюсе планеты Zaxxon использовал такое же имя функции:
// Zaxar's function on team 2
function doSomething() {
// doing something else
}
Как видите, Заксар и Джек используют одно и то же имя функции. Ни Заксар, ни Джон не обнаружили проблему до 6 месяцев в проекте. Они знают, что могут поставить предупреждение в свою функцию и проверить его во время выполнения, но скажем, что у Заксара и Джека есть 2 триллиона функций, и они используют 1 миллион библиотек JavaScript, и они понимают, что нецелесообразно размещать предупреждения в каждой функции.
Есть ли способ помочь Заксару и Джеку узнать, есть ли какие-либо столкновения имен во время выполнения? Или есть параметр, который подскажет движку JavaScript о том, чтобы вызывать ошибки при столкновении имен?
Больше информации
я загружаю в нескольких библиотеках, и я думаю, что один из них используют то же имя функции, как и я. Таким образом, в этом примере действительно нет другого разработчика, с которым я могу коррелировать. Он выясняет, используются ли библиотеки, которые я загружаю, с использованием тех же имен функций и предотвращения того, что подобное происходит по линии.
Возможно, JSHint поможет? dunoo ... Но мой совет, они отдельно проходят код и помещают все функции в объект (пространство имен) и заменяют все вызовы префиксом. Это не займет много времени с достойным редактором. – elclanrs
Реальное решение было бы для каждого разработчика или каждой части проекта работать в собственном пространстве имен. – jfriend00
Подходящий выбор имени и хорошая коммуникация позволят избежать таких проблем. Предположительно, если они работают над одним и тем же проектом и имеют функцию с тем же именем, то он делает то же самое. Поэтому нужно удалять из проекта. Если проект дошел до этого с большой проблемой, это провал управления проектами (связь, дизайн и тестирование все провалились). – RobG