2014-08-31 100 views
0

对不起新问题。但我一直在努力几个小时。如何在javascript中声明变量

var dbruns = {}; // namespace 

dbruns.dbstuff = { 
    var nameslistresult = []; 

这会得到一个错误,意外的标识符。当我把它在dbruns水平

var dbruns = {}; // namespace 
var nameslistresult = []; 
dbruns.dbstuff = { 

它让过去有,但随后

console.log(typeof dbruns.nameslistresult); 
console.log(typeof dbruns.dbstuff.nameslistresult); 

都返回不确定的。

我真的不知道这里发生了什么,任何帮助,将不胜感激。

+2

'dbruns.dbstuff = {nameslistresult:[]};'或'dbruns.dbstuff = {}; dbruns.dbstuff.nameslistresult = [];'您是否已尝试在“尝试几小时之前阅读文档或教程” ? – 2014-08-31 14:32:43

+0

非常感谢!的确,我做了,我没有看到有关如何定义属性的任何信息。我推测他们是公共变量。因为他们是。 – Shammoo 2014-08-31 17:37:26

+0

只是为了节省一点面子,驱使我尝试进行更奇怪的尝试使代码工作的原因是因为底层的API被破坏了。 – Shammoo 2014-09-01 15:05:34

回答

3

您似乎混淆了变量和属性。

这是你如何声明变量(和使用对象文本语法给它分配一个空的对象作为值):

var dbruns = {}; 

这是你如何一个值分配给一个对象的属性:

dbruns.dbstuff = { … 

这是你如何构造一个对象文本与预定义的属性:

… = { 
    nameslistresul: [], 
    foo: bar 
}; 
1

不幸的是,javascript没有名称间隔的块,而是函数充当附件。

你所得到的第一个错误是因为你根本没有定义命名空间,但是定义一个JavaScript对象,然后在那里,而不是属性定义puting意外的表情......

var dbruns = { key: "value", another_key: "another value" } // valid syntax for object definition 

如果你想nameresults是的dbruns属性,你可以做...

var dbruns = {} 
dbruns.nameresults = [] 
dbruns.stuff = {} 

JavaScript使用原型继承,一切都在JavaScript是一种对象。