JavaScript全局设置

JavaScript全局设置,javascript,Javascript,在下面的JavaScript代码中,我总是得到return'http://address1/“无论我是将DEBUG:false还是DEBUG:true设置为true 为什么 有没有更好的方法来编写全局应用程序设置 var globalSettings = { DEBUG: false, BASE_URL: function() { if (globalSettings.DEBUG = true) { return 'http://address1/' } el

在下面的JavaScript代码中,我总是得到
return'http://address1/“
无论我是将DEBUG:false还是DEBUG:true设置为true

为什么

有没有更好的方法来编写全局应用程序设置

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

使用==比较值

=给变量或字段一个新值,然后检查

您也不需要检查
==true


还要确保在正确的范围内:使用
globalSettings.DEBUG
而不是
DEBUG

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

globalSettings.DEBUG
。。。在代码中,
DEBUG
引用全局对象上的
DEBUG
字段(无论是浏览器中的
window
还是节点中的
global
),而不是您设置的字段。另外,您使用了错误的运算符进行比较。这是一个好主意。但它仍然总是给出第一个地址。我根据你的评论编辑了我的帖子,因为你的评论似乎比我的代码更接近正确。答案表明(这就是为什么这个问题被关闭的原因),你使用了错误的运算符进行比较。@Kyll
this.DEBUG
也应该正常工作吗?@PhilippSander你可以,例如,写入
getURL=globalSettings.BASE\u URL
。如果执行
getURL()
,则
将引用全局上下文(或
getURL
绑定到的任何其他上下文…)。