有人能解释一下这段代码吗?谢谢。
alert({foo:"test foo", bar:"test bar"}.bar); // "test bar"发布于 2011-12-23 18:21:42
{foo:"test foo", bar:"test bar"}这将创建一个具有两个属性foo和bar的新对象。如果您习惯了Java或C#或C++或类似的语言,就像在说
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。
发布于 2011-12-23 18:17:45
{foo:"test foo", bar:"test bar"}创建一个包含两个字段的新对象:foo,并且baralert(obj.bar)输出这个新创建的对象的bar字段的值发布于 2011-12-23 19:25:43
javascript中的对象文字是某种关联数组。
是成对的:
var a = {
key1: 'value1',
key2: 'value2',
"key #3": 'value3'
}值中可以包含任何类型的数据,如果值中包含特殊字符、空格或保留字,则Key应为字符串。
可以通过点访问a的值(如在OOP中):
a.key1 == 'value1';但是如果键包含上面描述的特殊字符,你可以像关联数组一样访问值意味着a;
a["key #3"] == 'value3'然而,
a["key1"] ;也是正确的
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'或
({ key1:'value1' })['key1'];// gets 'value1' toohttps://stackoverflow.com/questions/8614813
复制相似问题