2013-06-09 5 views
1

Так что я ищу над проектом, который включает в себя следующую строку JavaScript:Может кто-нибудь сказать мне, что это Javascript может делать

window.negotiationApp = window.negotiationApp || {}; 

Может кто-нибудь объяснить, может идти с этой строки кода?

Update Так что теперь я понимаю, что эта строка кода делает, на мой вопрос, может быть уникальным в выяснении следующее:

Там нет объекта negotiationApp в яваскрипта коде. window.negotiationApp всегда будет установлен в пустой объект, кажется, что разработчик действительно просто использует это как пространство имен или контейнер для других объектов. Является ли это обычной практикой javascript?

+0

Благодарим за ответы, ребята, похоже, что разработчик, который написал этот код, никогда не создает объект negotiationApp, и поэтому в основном его использование похоже на использование пространства имен в его коде. –

+0

То же, что и 'window.negotiationApp || (window.negotiationApp = {}) ':) –

+0

Дополнительные дубликаты: http://stackoverflow.com/q/13268848/218196, http://stackoverflow.com/q/4087543/218196, http://stackoverflow.com/q/13016235/218196, http://stackoverflow.com/q/2802055/218196, http://stackoverflow.com/q/9604865/218196 - Похоже, нам нужно немного почистить это. –

ответ

5

он уверен, что установлен window.negotiationApp. Если window не имеет этого свойства, то он инициализирует его {} (пустой объект), в противном случае он ничего не делает.

+0

Спасибо за ваш ответ, разработчик, который написал этот код, никогда не создает объект negotiationApp, поэтому он всегда инициализируется как пустой объект ({}), является ли распространенной практикой для достижения пространства имен в javascript? –

+0

Я не знаю, насколько это распространено, но большая часть кода, который я видел, использует такие объекты, чтобы включить все функциональные возможности кода. – akonsu

2

Это идиома, которая в основном означает, если window.negotiationApp не существует, установите его в {}. Вы можете сделать это, чтобы будущая информация не возвращалась неопределенно или что-то еще.

2

Обеспечивает window.negotiationApp объект не является неопределенным.

window.negotiationApp = window.negotiationApp || {}; 

означает, что если window.negotiationApp определено затем использовать его или назначить window.negotiationApp пустой объект.

if(window.negotiationApp) { 
    window.negotiationApp = window.negotiationApp; 
} 
else { 
    window.negotiationApp = {}; 
} 
2

Поскольку эта переменная задана в глобальном масштабе, она не должна переопределять существующую, если она есть.

поэтому он в основном говорит, если есть уже определенная переменная negotiationApp - используйте ее, если не создать новую.