菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

JS 教程

JS 主页 JS 简介 JS 放置位置 JS 输出 JS 语句 JS 语法 JS 注释 JS 变量 JS Let JS Const JS 运算符 JS 算术 JS 赋值 JS 数据类型 JS 函数 JS 对象 JS 对象属性 JS 对象方法 JS 对象显示 JS 对象构造函数 JS 事件 JS 字符串 JS 字符串方法 JS 字符串搜索 JS 字符串模板 JS 数字 JS BigInt JS 数字方法 JS 数字属性 JS 数组 JS 数组方法 JS 数组搜索 JS 数组排序 JS 数组迭代 JS 数组 Const JS 日期 JS 日期格式 JS 日期获取方法 JS 日期设置方法 JS Math JS Random JS 布尔值 JS 比较 JS If Else JS Switch JS For 循环 JS For In 循环 JS For Of 循环 JS While 循环 JS Break JS 可迭代对象 JS Set JS Set 方法 JS Map JS Map 方法 JS Typeof JS 类型转换 JS 解构 JS 位运算 JS RegExp JS 优先级 JS 错误 JS 作用域 JS 提升 JS 严格模式 JS this 关键词 JS 箭头函数 JS 类 JS 模块 JS JSON JS 调试 JS 样式指南 JS 最佳实践 JS 常见错误 JS 性能 JS 保留字

JS 版本

JS 版本 JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS 2019 JS 2020 JS 2021 JS 2022 JS 2023 JS 2024 JS IE / Edge JS 历史

JS 对象

对象定义 对象原型 对象方法 对象属性 对象 Get / Set 对象保护

JS 函数

函数定义 函数参数 函数调用 函数 Call 函数 Apply 函数 Bind 函数闭包

JS 类

类入门 类继承 类静态

JS 异步

JS 回调 JS 异步 JS Promises JS Async/Await

JS HTML DOM

DOM 入门 DOM 方法 DOM Document DOM 元素 DOM HTML DOM 表单 DOM CSS DOM 动画 DOM 事件 DOM 事件监听器 DOM 导航 DOM 节点 DOM 集合 DOM 节点列表

JS Browser BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS Web APIs

Web API 入门 Web 表单 API Web History API Web Storage API Web Worker API Web Fetch API Web Geolocation API

JS AJAX

AJAX 入门 AJAX XMLHttp AJAX Request AJAX Response AJAX XML 文件 AJAX PHP AJAX ASP AJAX 数据库 AJAX 应用 AJAX 示例

JS JSON

JSON 入门 JSON 语法 JSON vs XML JSON 数据类型 JSON 解析 JSON Stringify JSON 对象 JSON 数组 JSON 服务器 JSON PHP JSON HTML JSON JSONP

JS vs jQuery

jQuery 选择器 jQuery HTML jQuery CSS jQuery DOM

JS Graphics

JS Graphics JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

JS 示例

JS 示例 JS HTML DOM JS HTML 输入 JS HTML 对象 JS HTML 事件 JS 浏览器 JS 编辑器 JS 练习 JS 测验 JS 网站 JS 面试准备 JS Bootcamp JS 证书

JS 参考

JavaScript 对象 HTML DOM 对象


JavaScript 对象


现实生活中的对象

在现实生活中,对象是指:房子、汽车、人、动物或任何其他主体。

这是一个汽车对象的例子

汽车对象 属性 方法

car.name = 菲亚特

car.model = 500

car.weight = 850kg

car.color = 白色

car.start()

car.drive()

car.brake()

car.stop()

对象属性

现实生活中的汽车具有属性,例如重量和颜色

car.name = 菲亚特,car.model = 500,car.weight = 850kg,car.color = 白色。

汽车对象具有相同的属性,但因汽车而异。


对象方法

现实生活中的汽车具有方法,例如启动和停止

car.start(), car.drive(), car.brake(), car.stop().

汽车对象具有相同的方法,但这些方法是在不同时间执行的。


JavaScript 变量

JavaScript 变量是数据值的容器。

此代码将简单值 (Fiat) 赋给名为 car 的变量

示例

let car = "Fiat";
自己动手试一试 »

JavaScript 对象

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

此代码将许多值 (Fiat, 500, white) 赋给名为 car 的对象

示例

const car = {type:"Fiat", model:"500", color:"white"};
自己动手试一试 »

注意

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

在章节:JS Const 中了解更多关于在对象中使用 const 的信息。


JavaScript 对象定义

如何定义 JavaScript 对象

  • 使用对象字面量
  • 使用 new 关键字
  • 使用对象构造函数

JavaScript 对象字面量

对象字面量是花括号 {} 内的名称:值对列表。

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

注意

名称:值对也称为键:值对

对象字面量也称为对象初始化器


创建 JavaScript 对象

这些示例创建了一个具有 4 个属性的 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";
自己动手试一试 »

使用 new 关键字

此示例使用 new Object() 创建了一个新的 JavaScript 对象,然后添加了 4 个属性

示例

// 创建一个对象
const person = new Object();

// 添加属性
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
自己动手试一试 »

注意

上面的例子做的事情完全一样。

但是,没有必要使用 new Object()

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



对象属性

JavaScript 对象中的命名值称为属性

属性
firstName John
lastName Doe
age 50
eyeColor blue

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

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

访问对象属性

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

objectName.propertyName
objectName["propertyName"]

示例

person.lastName;
自己动手试一试 »
person["lastName"];
自己动手试一试 »

JavaScript 对象方法

方法是可以对对象执行的动作

方法是作为属性值存储的函数定义

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

示例

const person = {
  firstName: "John",
  lastName : "Doe",
  id       : 5566,
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};
自己动手试一试 »

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

this.firstName 表示 personfirstName 属性。

this.lastName 表示 personlastName 属性。


在 JavaScript 中,对象为王。

如果你理解对象,你就理解 JavaScript。

对象属性方法的容器。

属性是命名

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

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

在 JavaScript 中,几乎“一切”都是对象。

  • 对象就是对象
  • 数学是对象
  • 函数是对象
  • 日期是对象
  • 数组是对象
  • Map 是对象
  • Set 是对象

除了原始值之外,所有 JavaScript 值都是对象。


JavaScript 原始值

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

3.14 是一个原始值

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

JavaScript 定义了 7 种原始数据类型

  • string
  • 数字
  • boolean
  • null
  • undefined
  • symbol
  • bigint

不可变

原始值是不可变的(它们是硬编码的,不能更改)。

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

类型注释
"Hello"string"Hello" 永远是 "Hello"
3.14数字3.14 永远是 3.14
truebooleantrue 永远是 true
falsebooleanfalse 永远是 false
nullnull (对象)null 永远是 null
undefinedundefinedundefined 永远是 undefined

JavaScript 对象是可变的

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

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

const x = person;

对象 x 不是 person 的副本。对象 x 就是 person。

对象 x 和对象 person 共享相同的内存地址。

对 x 的任何更改也会更改 person

示例

//创建一个对象
const person = {
  firstName:"John",
  lastName:"Doe",
  age:50, eyeColor:"blue"
}

// 创建一个副本
const x = person;

// 同时更改两者中的 Age
x.age = 10;
自己动手试一试 »

注意

您将在后续章节中学习更多关于对象的内容。


通过练习来测试自己

练习

通过从 person 对象中提取信息,弹窗显示 "John"

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

alert();

开始练习


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持