有人可以解释这段代码吗? 感谢。
alert({foo:"test foo", bar:"test bar"}.bar); // "test bar"
答案 0 :(得分:1)
{foo:"test foo", bar:"test bar"}
创建一个包含两个字段的新对象:foo
和bar
alert(obj.bar)
输出此新创建对象的bar
字段值答案 1 :(得分:1)
javascript中的对象文字是某种关联数组。
是对:
var a = {
key1: 'value1',
key2: 'value2',
"key #3": 'value3'
}
可以在值中包含任何类型的数据, 如果键包含特殊字符,空格或保留字,则键应为字符串。
可以通过点(如OOP中)访问a
的值:
a.key1 == 'value1';
但是如果key包含上面描述的特殊字符,那么你可以像访问关联数组一样访问值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' too
答案 2 :(得分:0)
在Javascript中,{}表示法定义了一个对象,在这种情况下你只需得到bar属性。它类似于任何OO语言的类;和以下代码类似:
var obj = {
foo : 'Test Foo',
bar : 'test bar'
};
alert( obj.bar ); //Show the 'bar' property of obj.
声明显然会自行返回,因此您显示的语法是合法的。然而它是相当无用的,因为你不能对你刚刚定义的对象做任何事情。
答案 3 :(得分:0)
你有一个对象
有2个属性:foo,bar。
foo值是“test foo”
条形值是“测试条”
但是告诉我吧的价值。
{foo:“test foo”,bar:“test bar”}。bar
答案 4 :(得分:0)
在您的示例中,使用对象作为参数调用函数alert
。该参数动态构造一个具有两个属性foo
和bar
的对象,然后访问bar
属性,该属性返回要显示的alert
函数的字符串。 / p>
答案 5 :(得分:0)
你有两位代码:
{foo:"test foo", bar:"test bar"}
这是一个对象文字:它定义了一个具有两个属性foo
和bar
的对象,每个属性都有一个字符串作为其值。
.bar
这是成员运算符:它从名为bar
的对象中获取成员。
我无法想象这种编码风格的用例......
答案 6 :(得分:0)
JS创建对象并立即显示属性栏:) 可能会有所帮助:http://json.org/
答案 7 :(得分:0)
语法{foo:"test foo", bar:"test bar"}
被称为Javascript Object Notation(JSON),它允许使用更多terser语法构造javascript对象:
var obj = function() { this.foo = "test foo"; this.bar = "test bar"; };
var instance = new obj();
因此,在上面的示例中,您将创建一个包含两个字段的javascript对象,然后立即访问bar
字段。
答案 8 :(得分:0)
{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
。