JS 对象

创建于 2024-12-03 / 25
字体: [默认] [大] [更大]

现实生活中的对象、属性和方法

在现实生活中,汽车是一个对象

汽车有诸如车重和颜色等属性,也有诸如启动和停止的方法:

对象 属性 方法

car.name = Fiat

car.model = 500

car.weight = 850kg

car.color = white

car.start()

car.drive()

car.brake()

car.stop()

所有汽车都拥有同样的属性,但属性值因车而异。

所有汽车都拥有相同的方法,但是方法会在不同时间被执行。


JavaScript 对象

您之前已经学到,JavaScript 变量是数据值的容器。

这段代码把一个单一值(porsche)赋给名为 car 的变量:

var car = "Fiat"; 亲自试一试 »

对象也是变量。但是对象包含很多值。

这段代码把多个值(porsche, 911, white)赋给名为 car 的变量:

var car = {type:"Fiat", model:"500", color:"white"}; 亲自试一试 »

值以名称:值对的方式来书写(名称和值由冒号分隔)。

JavaScript 对象是被命名值的容器。



对象定义

我们定义(创建)了一个 JavaScript 对象:

实例

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

空格和折行都是允许的。对象定义可横跨多行:

实例

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

对象属性

(JavaScript 对象中的)名称:值对 被称为属性

属性 属性值
firstName John
lastName Doe
age 50
eyeColor blue

访问对象属性

可以通过两种方式访问对象属性:

objectName.propertyName

objectName["propertyName"]

实例1

person.lastName; 亲自试一试 »

实例2

person["lastName"]; 亲自试一试 »

对象方法

对象也可以有方法

方法是在对象上执行的动作

方法以函数定义被存储在属性中。

属性 Property Value
firstName John
lastName Doe
age 50
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

方法是作为属性来存储的函数。


实例

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

this 关键词

在函数定义中,this 引用该函数的"拥有者"。

在上面的例子中,this 指的是"拥有" fullName 函数的 person 对象

换言之,this.firstName 的意思是 this 对象的 firstName 属性。

请在 JS this 关键词这一章学习更多有关 this 关键词的知识。


访问对象方法

您能够通过如下语法访问对象方法:

objectName.methodName()

实例

name = person.fullName(); 亲自试一试 »

如果您不使用 () 访问 fullName 方法,则将返回函数定义:

实例

name = person.fullName; 亲自试一试 »

请不要把字符串、数值和布尔值声明为对象!

如果通过关键词 "new", 来声明 JavaScript 变量,则该变量会被创建为对象:

var x = new String();        // 将 x 声明为字符串对象
var y = new Number();        // 将 y 声明为 Number 对象
var z = new Boolean();       // 将 z 声明为布尔对象

请避免字符串、数值或逻辑对象。他们会增加代码的复杂性并降低执行速度。

您将在本教程的稍后章节学到更多有关对象的知识。


学习训练

练习题:

通过从 person 对象提取信息来提醒 "John"

var person = {
  firstName: "John",
  lastName: "Doe"
};

alert();

开始练习



0 人点赞过