2010-11-18 8 views
3

Поскольку несколько разработчиков работают над файлами javascript, многие из них снова и снова записывали те же имена файловДублирующиеся имена JavaScript. Неужели это плохо?

Простым примером может быть getCookie, setCookie тип функций.

Теперь мы делаем агрегацию в файлах javascript, будет ли какая-либо проблема, если они имеют одинаковые функции дважды.

Сейчас все работает нормально, но я хочу знать

Цените вашу помощь

ответ

11

Да, безусловно, будет проблема, если вы в конечном итоге, функция непреднамеренно определенную дважды в глобальном пространстве имен. Функция, которая была определена последним, просто перезапишет предыдущую.

Возможно, вы захотите рассмотреть использование пространств имен для решения этой проблемы. JavaScript пространства имен, как правило, имитируются с помощью объектов и закрытия, а также часто инициализируются самоосуществляющимися функциями:

var myNamespace = (function() { 
    var _name = 'Bob'; 

    return { 
     somePublicMethod: function() { 
     return 'Hello, ' + _name; 
     } 
    }; 
})(); 

alert(myNamespace.somePublicMethod()); 
+2

Подождите ... * Я * использовал myNamespace! ;) – Robusto

+0

@Robusto: lol! :) –

+0

@ daniel хороший ответ, большое спасибо, я получил это очищено. – kobe

5

Это вроде как Горец — для любого данного глобального символа, может быть только один!

+0

Упомянуто для справки Highlander. – Zach

+0

Я согласен с Заком, +1 :) – vol7ron

0

Пространства имен являются частью ответа, другая часть - , не записывая дублирующий код.

Имя функции или переменной должно описывать ее назначение, поэтому две функции с тем же именем должны быть одинаковой функцией! Разумеется, вы не можете сделать это отлично, поэтому у нас есть пространства имен.

Смежные вопросы