javascript:引用“相同”对象文字中的变量

时间:2014-02-25 11:07:20

标签: javascript angularjs

我有以下一点javascript,实际上它是有角度的,但它是相同的..

我试图通过联合前一个变量来设置expertUri变量,但我无法让它工作。我试过“这个”......但仍然没有运气。

'use strict';

angular.module('testme')
    .constant('config', {
        standardUri: 'http://localhost/setup',
        expertUri : standardUri+ '/expert'  // THIS FAILS
});

有谁知道我做错了什么?

由于

3 个答案:

答案 0 :(得分:0)

当您尝试访问standardUri时,尚未定义它。即使它是这样,你也无法以这种方式访问​​它,因为它是一个对象属性,而不是一个变量。

这应该有效:

'use strict';

var standardUri = 'http://localhost/setup';
angular.module('testme')
    .constant('config', {
        standardUri: standardUri,
        expertUri : standardUri+ '/expert'
});

答案 1 :(得分:0)

在不引入新变量的情况下“完成此工作”的唯一方法是将 expertUri 作为 getter

{
    standardUri: 'http://localhost/setup',
    get expertUri () {return this.standardUri + '/expert';}
}

这意味着每次您尝试访问属性 expertUri 时,您实际上都在调用函数,其中this将允许您访问< EM>对象

答案 2 :(得分:0)

您也可以使用匿名函数并立即调用它来创建对象,这会隐藏变量,但感觉就像锤子一样破解坚果......

angular.module('testme')
.constant('config', 
(function() {
  var stdUri = 'http://localhost/setup';
  return {
    standardUri: stdUri,
    expertUri : stdUri+ '/expert'
    };
  }
}())
);