JavaScript中对象中的对象
我正在尝试为我的一个站点设置常量文件。我正在尝试设置它,以便在需要时获取字符串常量 到目前为止我所拥有的(不工作,有点C#ish)JavaScript中对象中的对象,javascript,Javascript,我正在尝试为我的一个站点设置常量文件。我正在尝试设置它,以便在需要时获取字符串常量 到目前为止我所拥有的(不工作,有点C#ish) 这在JavaScript中可能吗?如果不可能,有人能推荐一个替代方案吗?您将培训定义为构造函数,但从未实际调用它。你想要的是: function SiteConstants() { var Training = function Training() //constructor { this.Staff = function Staf
这在JavaScript中可能吗?如果不可能,有人能推荐一个替代方案吗?您将培训定义为构造函数,但从未实际调用它。你想要的是:
function SiteConstants()
{
var Training = function Training() //constructor
{
this.Staff = function Staff()
{
this.fetch = "someurl";
}
}
this.Training = new Training();
}
内部类也是如此。您将培训定义为构造函数,但从未实际调用它。你想要的是:
function SiteConstants()
{
var Training = function Training() //constructor
{
this.Staff = function Staff()
{
this.fetch = "someurl";
}
}
this.Training = new Training();
}
等等。为此,您必须使用对象而不是函数
var Constants = {
Training: {
Staff: {
fetch: "someurl"
}
}
};
为此,必须使用对象而不是函数
var Constants = {
Training: {
Staff: {
fetch: "someurl"
}
}
};
尝试正确定义每个构造函数
function SiteConstants()
{
this.training = new Training();
}
function Training()
{
this.staff = new Staff();
}
function Staff()
{
this.fetch = "someurl";
}
或者你也可以这样做:
function SiteConstants()
{
function Training()
{
function Staff()
{
this.fetch = "someurl";
}
this.Staff = new Staff();
}
this.Training = new Training();
}
尝试正确定义每个构造函数
function SiteConstants()
{
this.training = new Training();
}
function Training()
{
this.staff = new Staff();
}
function Staff()
{
this.fetch = "someurl";
}
或者你也可以这样做:
function SiteConstants()
{
function Training()
{
function Staff()
{
this.fetch = "someurl";
}
this.Staff = new Staff();
}
this.Training = new Training();
}
您需要像这样创建一个新对象
var Obj = new Constants.Training();
然后您需要调用函数Staff和console.log
Obj.fetch
Obj.Staff();
console.log(Obj.fetch);
或者你可以这样做
function SiteConstants()
{
this.Training = function Training()
{
this.Staff = function Staff()
{
this.fetch = "someurl";
}
}
}
var Constants = new SiteConstants();
Constants.Training = new Constants.Training();
Constants.Training.Staff();
console.log(Constants.Training.fetch);
您需要像这样创建一个新对象
var Obj = new Constants.Training();
然后您需要调用函数Staff和console.log
Obj.fetch
Obj.Staff();
console.log(Obj.fetch);
或者你可以这样做
function SiteConstants()
{
this.Training = function Training()
{
this.Staff = function Staff()
{
this.fetch = "someurl";
}
}
}
var Constants = new SiteConstants();
Constants.Training = new Constants.Training();
Constants.Training.Staff();
console.log(Constants.Training.fetch);
我建议采取完全不同的方法;一个对JavaScript更为惯用的方法是:JSON
{
"siteConstants" : {
"training" : {
"staff" : {
"fetch" : "someurl"
}
}
}
}
然后,如果将此对象附加到var constantsObject
,则可以访问常量:
constantsObject.siteConstants.training.staff.fetch; // returns "someurl"
constantsObject["siteConstants"]["training"]["staff"]["fetch"] // returns "someurl"
我建议采取完全不同的方法;一个对JavaScript更为惯用的方法是:JSON
{
"siteConstants" : {
"training" : {
"staff" : {
"fetch" : "someurl"
}
}
}
}
然后,如果将此对象附加到var constantsObject
,则可以访问常量:
constantsObject.siteConstants.training.staff.fetch; // returns "someurl"
constantsObject["siteConstants"]["training"]["staff"]["fetch"] // returns "someurl"
由于它们是构造函数,
(new(new Constants.Training()).Staff()).fetch
常量本身在Javascript中不存在。如果您试图在其他对象中创建对象,只需使用适当的对象文字表示法和赋值。@K.Hallman如果您是对的,这里有const
关键字(),但我不建议这样做,因为它还没有得到广泛支持。我认为OP中“常量”的含义非常明显,正如您所建议的,对象文字可能是最好的方式…@Ianconst
是一个保留字,但据我所知,目前在ECMAScript规范中没有实现。OP令人困惑,因为它使用了一个含义不明确的词。因为它们是构造函数,(new(new Constants.Training()).Staff()).fetch
常量本身在Javascript中不存在。如果您试图在其他对象中创建对象,只需使用适当的对象文字表示法和赋值。@K.Hallman如果您是对的,这里有const
关键字(),但我不建议这样做,因为它还没有得到广泛支持。我认为OP中“常量”的含义非常明显,正如您所建议的,对象文字可能是最好的方式…@Ianconst
是一个保留字,但据我所知,目前在ECMAScript规范中没有实现。OP之所以让人困惑,是因为它使用了一个含义不明确的词。我需要将它们括起来,这样就不会有冲突的对象(我们网站上有大量的javascript对象)我需要将它们括起来,这样就不会有冲突的对象(我们网站上有大量的javascript对象)JavaScript中没有“JSON”类型。您正在创建一个对象文字,另一个答案已经给出provided@Ian我从来没有把它称为一种类型。我说的是“方法”,我仍然不明白为什么这里应该引用JSON。JSON是一种数据传输格式,与JavaScript没有任何关系(除了它是从JS对象派生出来的这一事实)@Ian同样,直到我发布了我的答案之后,我才看到Anton L的答案。无论如何,JSON可以在外部使用,这可能会更好地满足OP的请求:“我正在尝试为我的一个站点设置一个常量文件。”
JavaScript中没有“JSON”类型。您正在创建一个对象文字,另一个答案已经给出provided@Ian我从来没有把它称为一种类型。我说的是“方法”,我仍然不明白为什么这里应该引用JSON。JSON是一种数据传输格式,与JavaScript没有任何关系(除了它是从JS对象派生出来的这一事实)@Ian同样,直到我发布了我的答案之后,我才看到Anton L的答案。无论如何,JSON可以在外部使用,这可能会更好地满足OP的请求:“我正在尝试为我的一个站点设置一个常量文件。”