繁体   English   中英

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

[英]javascript: Referring to a variable in 'same' an object literal

我有以下javascript代码,实际上它的角度是相同的。

我正在尝试通过压缩先前的变量来设置expertUri变量,但我无法使其正常工作。 我尝试了“这个”……但还是没有运气。

'use strict';

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

有人知道我在做什么错吗?

谢谢

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

这应该工作:

'use strict';

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

无需引入新变量即可“完成这项工作”的唯一方法是让ExpertUri作为吸气剂

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

这意味着每次您尝试访问属性ExpertUri时 ,实际上是在调用一个函数this 函数将允许您访问Object

您还可以使用匿名函数并立即调用它来创建对象,这隐藏了变量,但感觉就像是敲碎坚果的锤子...

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM