2015-11-26 4 views
0

В следующем JavaScript-коде я всегда получаю return 'http://address1/' независимо от того, устанавливаю ли я DEBUG: false или DEBUG: true.Глобальные настройки JavaScript

Почему?

Есть ли лучший способ написать глобальные настройки приложения?

var globalSettings = { 
    DEBUG: false, 
    BASE_URL: function() { 
    if (globalSettings.DEBUG = true) { 
     return 'http://address1/' 
    } else { 
     return 'https://address2/' 
    } 
    } 
}; 
+0

'globalSettings.DEBUG' ... В коде' DEBUG' ссылается на 'DEBUG' поле на глобальный объект (будь то' window' в браузере или 'global' в Node), а не тот, который вы установили. Кроме того, для сравнения используется неправильный оператор. –

+0

Это хорошая идея. Но он все равно всегда дает первый адрес. Я отредактировал свое сообщение на основе вашего комментария, так как ваш комментарий кажется ближе к правилу, чем мой код. – user1283776

+0

Как говорится в ответе (и поэтому этот вопрос закрыт), вы используете неправильный оператор для сравнения. –

ответ

2

использование == для сравнения значений

= дать переменную или поле новое значение и проверяет его после

Вам также не нужно проверить == true

также убедитесь, быть в правильном объеме: используйте globalSettings.DEBUG вместо DEBUG.

var globalSettings = { 
    DEBUG: false, 
    BASE_URL: function() { 
    if (globalSettings.DEBUG) { 
     return 'http://address1/' 
    } else { 
     return 'https://address2/' 
    } 
    } 
}; 
Смежные вопросы