我宣布:
var ENV = {
VERSION: 1,
SERVER: 'midomain.com',
SERVER_DEV: 'testdomain.dev',
API_ROUTE: 'socket/',
API: (false) ? this.SERVER + '/' + this.API_ROUTE : this.SERVER_DEV + '/' + this.API_ROUTE };
应该得到:
{ VERSION: 1,SERVER: 'midomain.com',SERVER_DEV: 'testdomain.dev',API_ROUTE: 'socket/', API: 'testdomain.dev/socket/' }
但我得到
{ VERSION: 1,SERVER: 'midomain.com',SERVER_DEV: 'testdomain.dev',API_ROUTE: 'socket/', API: 'undefined/undefined' }
答案 0 :(得分:0)
因为在这种情况下,上下文是全局的,而不是您的对象。您可以通过示例进行检查:
window.b = 666;
let a = {
prop: this.b
}
console.log(a); // display: {prop: 666}
您可以逐个填充对象属性
let ENV = {};
ENV.VERSION = 1;
ENV.SERVER = 'midomain.com';
ENV.API = ENV.SERVER;
或使用' new'创建功能语法
var ENV = new function() {
this.VERSION = 1;
this.SERVER = 'midomain.com';
this.API = this.SERVER;
};