首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >访问JavaScript对象

访问JavaScript对象
EN

Stack Overflow用户
提问于 2011-12-23 18:15:33
回答 9查看 433关注 0票数 2

有人能解释一下这段代码吗?谢谢。

代码语言:javascript
复制
 alert({foo:"test foo", bar:"test bar"}.bar); // "test bar"
EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-12-23 18:21:42

代码语言:javascript
复制
{foo:"test foo", bar:"test bar"}

这将创建一个具有两个属性foobar的新对象。如果您习惯了Java或C#或C++或类似的语言,就像在说

代码语言:javascript
复制
class FooAndBarObject {
  public string foo;
  public string bar;

  public FooAndBarObject(string foo, string bar) {
    this.foo = foo;
    this.bar = bar;
  }
}

new FooAndBarObject("test foo", "test bar");

因此,编写{foo:"test foo", bar:"test bar"}.bar将返回bar属性的值,恰好是"test bar"

alert是一个显示传递给它的值的函数,因此它将向用户显示test bar

票数 0
EN

Stack Overflow用户

发布于 2011-12-23 18:17:45

  1. {foo:"test foo", bar:"test bar"}创建一个包含两个字段的新对象:foo,并且bar
  2. alert(obj.bar)输出这个新创建的对象的bar字段的值
票数 1
EN

Stack Overflow用户

发布于 2011-12-23 19:25:43

javascript中的对象文字是某种关联数组。

是成对的:

代码语言:javascript
复制
  var a  = { 
     key1: 'value1',
     key2: 'value2',
     "key #3": 'value3'
    }

值中可以包含任何类型的数据,如果值中包含特殊字符、空格或保留字,则Key应为字符串。

可以通过点访问a的值(如在OOP中):

代码语言:javascript
复制
 a.key1 == 'value1';

但是如果键包含上面描述的特殊字符,你可以像关联数组一样访问值意味着a

代码语言:javascript
复制
a["key #3"] == 'value3'

然而,

代码语言:javascript
复制
a["key1"] ;

也是正确的

javascript中的每个声明/赋值都返回对象本身或分别赋值,因此:

代码语言:javascript
复制
var a;
(a={ 
    key1: 'value1',
    key2: 'value2',
    "key #3": 'value3',
    key4: function(){
       //`this` refers to `a` variable - if function will be called directly from `a`  => a.key4() ; 
      alert(this["key #3");}
        }).key1  // gets 'value1'

代码语言:javascript
复制
({ key1:'value1' })['key1'];// gets 'value1' too
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8614813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档