使用点符号创建 Javascript 对象

Creating Javascript object with dot notation

我正在学习 Javascript 并且有一个关于对象的问题。在一节课中,我看到了一个这样创建的对象:

var friends = {};

friends.john = {
    firstName: "John",
    lastName : "Doe",
    id       : 5566,
    fullName : function() {
       return this.firstName + " " + this.lastName;
    }
};

friends.john 中的 john 是一个键,其值是花括号中的内容吗?我不明白什么时候第一次使用点符号创建对象与只是将所有内容放入花括号中开始。

john 是一个 属性 的朋友,对象的值包含 john 的所有信息。点符号通常用于事后或参考。你可以很容易地避免它:

var friends = {
 john: {
  firstName: "John",
  lastName : "Doe",
  id       : 5566,
  fullName : function() {
   return this.firstName + " " + this.lastName;
  }
 }
};

是的,您的代码完全等同于:

var friends = {
    john: {
        firstName: "John",
        lastName : "Doe",
        id       : 5566,
        fullName : function() {
           return this.firstName + " " + this.lastName;
        }
    }
};

在 JavaScript 中,有多种方法可以用不同的方式做同样的事情。在这种情况下,您可以使用任一语法,但只能使用花括号语法来创建 new 对象。要将 属性 分配给现有对象,您通常会使用赋值语法:

friends.john = ...;

您的代码等同于

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;
};
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"

alert(friends.john.fullName());

注意:点符号用于访问对象 property.in 你的 case friends 是一个对象,其中 John 是 属性 的朋友,花括号中的东西是 John 的值。