【问题标题】:How to declare variables in javascript如何在javascript中声明变量
【发布时间】:2014-08-31 14:30:53
【问题描述】:

很抱歉提出新问题。但我已经尝试了几个小时。

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);

两者都返回未定义。

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

【问题讨论】:

  • dbruns.dbstuff = {nameslistresult:[] };dbruns.dbstuff = {};dbruns.dbstuff.nameslistresult = []; 在“尝试几个小时”之前,您是否已经尝试阅读文档或教程?
  • 非常感谢!确实我做到了,我没有看到任何关于如何定义属性的信息。我认为它们是公共变量。因为他们有点像。
  • 只是为了挽回一点面子,促使我尝试更奇怪的尝试以使代码工作的原因是因为底层 API 被破坏了。

标签: javascript scope var


【解决方案1】:

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

这是您声明变量的方式(并使用对象字面量语法为其分配一个空对象作为值):

var dbruns = {};

这是为对象的属性赋值的方式:

dbruns.dbstuff = { …

这是你如何构造一个具有预定义属性的对象字面量:

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

【讨论】:

    【解决方案2】:

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

    您遇到的第一个错误是因为您没有定义命名空间,而是定义了一个 javascript 对象,然后在其中放置了意外的表达式而不是属性定义...

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

    如果您希望 nameresults 成为 dbruns 的属性,您可以这样做...

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

    Javascript 使用原型继承,javascript 中的一切都是对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      • 2011-03-22
      • 2011-03-28
      • 1970-01-01
      • 2011-12-12
      相关资源
      最近更新 更多