二维码

JavaScript 对象

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
2
3
4
5
6
const person = {  
  firstName: "John",
  lastName: "Doe",
  age: 50,
  eyeColor: "blue"
};


对象属性

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
2
3
4
5
6
7
8
const person = {  
  firstName: "John",
  lastName : "Doe",
  id       : 5566,
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};

在上面的示例中,this指的是person 对象

this.firstName表示personfirstName属性。

this.lastName表示personlastName属性。


this是什么?

在 JavaScript 中,this关键字指的是一个对象

哪个对象取决于如何this调用(使用或调用)。

关键字this根据其使用方式引用不同的对象:

在对象方法中,this指的是对象
单独,this指的是全局对象
在函数中,this指的是全局对象
在函数中,在严格模式下,thisundefined
在事件中,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
2
3
x = new String();        // Declares x as a String object  
y = new Number();        // Declares y as a Number object
z = new Boolean();       // Declares z as a Boolean object

避免StringNumber、 和Boolean物体。它们使您的代码变得复杂并降低执行速度。

您将在本教程后面了解有关对象的更多信息。