目录

JavaScript 对象定义


在 JavaScript 中,对象为王。如果你了解对象,你就了解了 JavaScript。


在 JavaScript 中,几乎 "everything" 是一个对象。

  • 布尔值可以是对象(如果使用new关键字)
  • 数字可以是对象(如果使用new关键字)
  • 字符串可以是对象(如果使用new关键字)
  • 日期始终是对象
  • 数学始终是对象
  • 正则表达式始终是对象
  • 数组始终是对象
  • 函数始终是对象
  • 对象始终是对象

所有 JavaScript 值(除了原语)都是对象。


JavaScript 基元

原始值是一个没有属性或方法的值。

3.14是一个原始值

原始数据类型是具有原始值的数据。

JavaScript 定义了 7 种基本数据类型:

示例

  • string
  • number
  • boolean
  • null
  • undefined
  • symbol
  • bigint

不可变的

原始值是不可变的(它们是硬编码的并且无法更改)。

如果 x = 3.14,则可以更改 x 的值,但不能更改 3.14 的值。

类型 注释
"Hello" 字符串 "Hello" 始终为 "Hello"
3.14 数字 3.14 始终是 3.14
真的 布尔值 真实永远是真实的
错误的 布尔值 假的永远是假的
无效的 空(对象) null 始终为 null
不明确的 不明确的 未定义始终是未定义

对象是变量

JavaScript 变量可以包含单个值:

示例

let person = "John Doe";
亲自试一试 »

JavaScript 变量还可以包含许多值。

对象也是变量。但对象可以包含许多值。

对象值写为名称:值对(名称和值用冒号分隔)。

示例

let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
亲自试一试 »

JavaScript 对象是一个集合命名值

使用以下方式声明对象是一种常见的做法const关键字。

示例

const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
亲自试一试 »


对象属性

在 JavaScript 对象中,命名值称为特性

属性
约翰
美国能源部
年龄 50
眼睛的颜色 蓝色的

以名称值对形式编写的对象类似于:

  • PHP 中的关联数组
  • Python 中的字典
  • C 中的哈希表
  • Java 中的哈希映射
  • Ruby 和 Perl 中的哈希

对象方法

方法有行动可以在对象上执行。

对象属性可以是原始值、其他对象和函数。

一个对象方法是一个对象属性,包含函数定义

属性
约翰
美国能源部
年龄 50
眼睛的颜色 蓝色的
全名 function() {return this.firstName + " " + this.lastName;}

JavaScript 对象是命名值的容器,称为属性和方法。

您将在接下来的章节中了解有关方法的更多信息。


创建 JavaScript 对象

使用 JavaScript,您可以定义和创建自己的对象。

创建新对象有不同的方法:

  • 使用对象字面量创建单个对象。
  • 使用关键字创建单个对象new
  • 定义一个对象构造函数,然后创建该构造类型的对象。
  • 使用创建对象Object.create()

使用对象文字

这是创建 JavaScript 对象的最简单方法。

使用对象字面量,您可以在一条语句中定义和创建一个对象。

对象字面量是大括号 {} 内的名称:值对(例如年龄:50)的列表。

以下示例创建一个具有四个属性的新 JavaScript 对象:

示例

const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
亲自试一试 »

空格和换行符并不重要。一个对象定义可以跨越多行:

示例

const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50,
  eyeColor: "blue"
};
亲自试一试 »

此示例创建一个空的 JavaScript 对象,然后添加 4 个属性:

示例

const person = {};
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
亲自试一试 »

使用 JavaScript 关键字 new

以下示例使用以下命令创建一个新的 JavaScript 对象new Object(),然后添加 4 个属性:

示例

const person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
亲自试一试 »

上面的例子的作用完全相同。

但没有必要使用new Object()

为了可读性、简单性和执行速度,请使用对象字面量方法。


JavaScript 对象是可变的

对象是可变的:它们是通过引用而不是值来寻址的。

如果 person 是一个对象,则以下语句不会创建 person 的副本:

const x = person;  // Will not create a copy of person.

物体x是不是副本的人。它人。 x 和 person 都是同一个对象。

对 x 的任何更改也会更改 person,因为 x 和 person 是同一个对象。

示例

const person = {
  firstName:"John",
  lastName:"Doe",
  age:50, eyeColor:"blue"
}

const x = person;
x.age = 10;      // Will change both x.age and person.age
亲自试一试 »