使用点表示法创建Javascript对象

时间:2015-01-23 21:16:52

标签: javascript object

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

var friends = {};

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

john在friends.john中,一个关键是谁的价值是花括号中的东西?我不明白何时首先使用点符号创建对象,而不是将所有内容放入花括号开始。

4 个答案:

答案 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值。