【问题标题】:What kind of object is this or is it even an object? And how does it work?(JavaScript)这是一个什么样的对象,或者它甚至是一个对象?它是如何工作的?(JavaScript)
【发布时间】:2011-10-04 03:28:51
【问题描述】:

我正在处理仪表板小部件,并且遇到了如下代码:

var variableName = {
"SomeName":"someValue",
"someName": "another value",
};

这几乎是它看起来的总和。我的问题是它是什么,它是如何工作的,我能用它做什么?一个例子将是完美的。提前致谢!

【问题讨论】:

  • 你有一个例子。它是一个对象。您可以像使用任何其他对象一样使用它variableName.SomeName。我不明白这是什么问题?
  • 我的问题是:为什么要使用 this 而不是使用直接实例或模板来声明对象。除了看起来不同的事实之外,它的使用中的文字对象之间肯定存在差异,对吧?我可能错了
  • 我不认为有任何真正的区别。六个或六个......从长远来看,它都是一样的。 (除非你是面包师;))
  • 好的,非常感谢先生!我喜欢这个网站!!!
  • 别忘了给别人点赞(例如,mike 需要一些爱)。如果您有时间和知识,也尝试自己回答几个问题;)

标签: javascript variables object


【解决方案1】:

这是一个对象字面量。差不多就是这样:

var variableName = new Object();
variableName.SomeName = "someValue";
variableName.someName = "another value";

【讨论】:

  • +1 对于那些试图在他们已经知道的上下文中理解对象字面量的人来说,该描述有助于将其带​​回家。很好的例子。
  • 谢谢!我现在看到它与对象的相似之处,但除了它的声明方式之外还有什么区别?我可以用这种类型的对象做一些我不能用对象的直接实例做的事情吗?
  • 不,应该像new Object()
【解决方案2】:

这是object literal 的示例。

它创建一个具有两个属性的普通对象。

【讨论】:

  • 这是一个有效的答案;我不明白为什么它被否决了。 (+1 使其归零)
  • 可能是对@SLaks 正确指出错误答案的报复(现已删除)。
【解决方案3】:

虽然它在 JavaScript 中被称为 对象字面量,但在大多数语言中它更像是一个枚举。

var messageState = {
  new: 0,
  read: 1,
  deleted: 2
};

有了这些,您就有了一种易于阅读的方式来确定消息状态:

var message = GetMessage();
if (message.state == messageState.deleted) {
  alert('This message is deleted');
}

这也是一种在 JS 文件中组织功能块的简单方法。如果您只想为您的整个站点使用一个 JS 文件,强烈建议您进行各种优化,您可以使用它而不是编写几个不同的函数:

var Message {
  sendMessage: function(msg) {
    // method to send msg
  },

  deleteMessage: function(msg) {
    // method to delete msg
  }
};


var Vote = {
  votePostUp: function(post) {
    // method to vote post up
  },

  votePostDown: function(post) {
    // method to vote post down
  }
};

然后调用:

Message.sendMessage(theMessage);
Vote.votePostUp(myPost);

【讨论】:

  • 好的,这很整洁!所以我可以用它来对函数进行分类。这是我可以用外行人的话来说最好的方式。尽管如此,还是很有帮助的!谢谢!
  • 绝对!这实际上是 javascript 中一个非常重要的概念,因为所有 JSON 对象也是这种格式,所以你应该经常看到这种格式。我很高兴这有助于概述!
【解决方案4】:

这是一个使用对象文字表示法创建的 JavaScript 对象。

你可以像这样访问它的属性:

variableName["SomeName"];

variableName.SomeName;

您还可以使用for...in 循环遍历所述对象的属性(以任意顺序):

for(var prop in variableName) {
    alert(prop + " = " + variableName[prop]);
}

有关使用 JavaScript 对象的出色指南,请查看 this MDN article 使用对象。

【讨论】:

    【解决方案5】:

    您正在查看的是关联数组(哈希映射或某些语言中的字典)。基本上它是一个将一个对象与另一个对象关联起来的数组,就像一个单词与其在真实字典中的定义相关联。

    它也是 JavaScript 的主要对象形式(它们将函数名与函数体相关联)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多