我正在学习Javascript并且有关于对象的问题。在课程中,我看到了一个像这样创建的对象:
var friends = {};
friends.john = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
john在friends.john中,一个关键是谁的价值是花括号中的东西?我不明白何时首先使用点符号创建对象,而不是将所有内容放入花括号开始。
答案 0 :(得分:3)
是的,你在那里的代码完全等同于:
var friends = {
john: {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
}
};
在JavaScript中以不同方式执行相同操作的方法有很多种。在这种情况下,您可以使用任一语法,但只能使用大括号语法来创建 new 对象。要将属性分配给现有对象,通常使用赋值语法:
friends.john = ...;
答案 1 :(得分:1)
john是朋友的财产,其中包含所有john信息的对象的值。点符号通常用于事实或参考之后。你可以用这个轻松避免它:
var friends = {
john: {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
}
};
答案 2 :(得分:0)
您的代码等同于
var friends = {
john: {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
}
};
还有
var friends = new Object();
friends.john = new Object();
friends.john.firstName = "John";
friends.john.lastName = "Doe";
friends.john.id = 5566;
friends.john.fullName = function() {
return this.firstName + " " + this.lastName;
};
答案 3 :(得分:0)
code1:
var friends = {};
friends.john = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
这里code1相当于code2:
code2
var friends = {
john: {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
}
};
所以,如果你在下面的陈述中运行,则会给出相同的结果,即" John Doe"
警报(friends.john.fullName());
注意:点符号用于访问对象属性。在你的情况下,朋友是一个对象,其中John是朋友的属性,花括号中的东西是John值。