JavaScript 对象
在 JavaScript 中,大多数事物都是对象, 包括数字、字符串、布尔值、数组、函数,正则表达式等。JavaScript 对象是一个包含相关数据和方法的集合,通常由一些变量和函数组成。
在 JavaScript 中,大多数事物都是对象, 包括数字、字符串、布尔值、数组、函数,正则表达式等。JavaScript 对象是一个包含相关数据和方法的集合,通常由一些变量和函数组成。
现实对象、属性和方法
在现实生活中,汽车是一个对象。
汽车具有重量和颜色等属性,以及启动和停止等方法:
所有汽车都具有相同的属性,但属性值因汽车而异。
所有的汽车都有相同的方法,但这些方法是在不同的时间执行的 。
JavaScript 对象
JavaScript 对象是一个包含相关属性和方法的集合,通常由一些变量和函数组成。属性描述了对象的信息,方法则定义了对象的操作。
下面定义了一个对象,有 type
,model
和 color
三个属性,并把对象赋值给 car
变量
const car = { type: "Fiat", model: "500", color: "white" };
JavaScript 对象由对象字面量定义。对象字面量是封闭在花括号对({}
)中的一个对象的零个或多个"属性名-值"对的(元素)列表。
空格和换行符不影响对象的定义。一个对象定义可以跨越多行:
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue",
};
上面定义了一个 person
对象(person 是人的意思),这个对象有四个属性: firstName(名),lastName(姓),age(年龄),eyeColor(眼睛颜色)。
对象属性
JavaScript 对象中的属性名:值对称为属性。
上面的 person
对象的属性如下:
属性名 | 属性值 |
---|---|
firstName |
John |
lastName |
Doe |
age |
50 |
eyeColor |
blue |
访问对象属性
您可以通过点或者方括号两种方式访问对象的属性:
objectName.propertyName;
或者
objectName["propertyName"];
!! 这种通过方括号的访问对象属性的方式和数组索引有点像。其实可以把对象看作一个特殊的数组,只不过对象的索引是属性名,而数组的索引是元素的序列位置。
比如下面的两种:
// 下面两种调用方式产生的结果一样
console.log(person.lastName);
console.log(person["lastName"]);
对象方法
当对象的某个属性的值是函数的时候,我们称这个属性为方法。方法一般定义了对象上的某个操作,执行方法就是调用相应的函数。
const person = {
firstName: "John",
lastName: "Doe",
id: 5566,
fullName: function () {
return this.firstName + " " + this.lastName;
},
};
上面例子的对象定义中,fullName 就是对象的方法,该方法返回当前对象的全名。
上面例子中的 this
关键字是指对象本身,this.firstName
就是当前对象的 firstName 属性。
更对关于 this
关键字的信息请访问 JavaScript this 章节获得更多信息。
访问对象方法
您可以使用以下点语法访问对象方法:
objectName.methodName()
如果调用对象方法的时候没有带上后面的 ()
,他会返回函数定义,如下:
let name = person.fullName;
console.log(name);
不要将字符串、数字和布尔值声明为对象!
当使用关键字 new
声明 JavaScript 变量时,该变量将创建为对象:
let x = new String(); // 定义 x 为 String object
let y = new Number(); // 定义 y 为 Number object
let z = new Boolean(); // 定义 z 为 Boolean object
避免通过 new 创建 String
,Number
和 Boolean
对象,它们使您的代码复杂化并降低执行速度。
您将在本教程的后面了解有关对象的更多信息。