JavaScript 对象
现实生活中的对象、属性和方法
在现实生活中,汽车是一个物体。
汽车具有重量和颜色等属性,以及启动和停止等方法:
目的 | 特性 | 方法 |
---|
| | car.name = 菲亚特
car.model = 500
car.weight = 850kg
car.color = 白色 | 汽车.start()
汽车.drive()
汽车.brake()
汽车.stop() |
所有汽车都具有相同的属性,但属性值因汽车而异。
所有汽车都有相同的方法,但执行方法的 时间不同。
JavaScript 对象
您已经了解 JavaScript 变量是数据值的容器。
此代码将一个简单值(Fiat) 分配给名为 car 的变量:
1 | let car = "Fiat"; |
对象也是变量。但对象可以包含许多值。
此代码将许多值 (Fiat、500、white)分配给 名为 car 的变量 :
1 | const car = {type:"Fiat", model:"500", color:"white"}; |
这些值被写为名称:值对(名称和值用冒号分隔)。
使用const关键字声明对象是一种常见的做法。
对象定义
您可以使用对象字面量定义(并创建)一个 JavaScript 对象:
1 | const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}; |
空格和换行符并不重要。一个对象定义可以跨越多行:
1 | const person = { |
对象属性
JavaScript 对象中的名称**:值对称为属性**:
属性 | 适当的价值 |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
访问对象属性
您可以通过两种方式访问对象属性:
1 | objectName.propertyName |
或者
1 | objectName["propertyName"] |
1 | person.lastName; |
1 | person["lastName"]; |
JavaScript 对象是称为属性的命名值的容器。
对象方法
对象也可以有方法。
方法是可以对对象执行的操作。
方法作为函数定义存储在属性中。
属性 | 适当的值 |
---|---|
firstName |
John |
lastName |
Doe |
age |
50 |
eyeColor |
blue |
fullName |
function() {return this.firstName + " " + this.lastName;} |
方法是存储为属性的函数。
1 | const person = { |
在上面的示例中,this
指的是person 对象:
this.firstName表示person的firstName属性。
this.lastName表示person的lastName属性。
this是什么?
在 JavaScript 中,this
关键字指的是一个对象。
哪个对象取决于如何this
调用(使用或调用)。
关键字this
根据其使用方式引用不同的对象:
在对象方法中,this 指的是对象。 |
---|
单独,this 指的是全局对象。 |
在函数中,this 指的是全局对象。 |
在函数中,在严格模式下,this 是undefined 。 |
在事件中,this 指接收事件的元素。 |
call() 、apply() 、 和 等方法bind() 可以引用任何this 对象。 |
笔记
this
不是变量。这是一个关键字。您无法更改 的值this
。
this关键字**_**
在函数定义中,this
指函数的“所有者”。
在上面的示例中,this
是“拥有”该函数的 person 对象fullName
。
换句话说,this.firstName
就是这个对象firstName
的属性。
访问对象方法
您可以使用以下语法访问对象方法:
1 | objectName.methodName() |
1 | name = person.fullName(); |
如果访问不带() 括号的方法,它将返回函数定义:
1 | name = person.fullName; |
不要将字符串、数字和布尔值声明为对象!
当使用关键字“ new
”声明 JavaScript 变量时,该变量将被创建为对象:
1 | x = new String(); // Declares x as a String object |
避免String
、Number
、 和Boolean
物体。它们使您的代码变得复杂并降低执行速度。
您将在本教程后面了解有关对象的更多信息。
0评论