- 6
- 0
- 约 13页
- 2016-12-31 发布于重庆
- 举报
第6章 对象
本章目标
了解什么是对象
什么时候定义对象
如何定义对象
使用Object的注意事项
对象是JavaScript的基本数据类型。在了解JavaScript对象之前,我们先浅显了解什么是对象。对象就是事物,只是因为计算机编程语言是外国人发明的,起名为object。对于中国人来说称之为事物,物体更好理解。在计算机的世界中万物皆为对象,人,动物,计算器,窗口,按钮,英雄联盟中的人物,飞机大战中的子弹等。
对象是一种复合值:它将很多值(原始值或者其他对象)聚合在一起,可通过名字访问这些值。对象也可看作是属性的无序集合,每个属性都是一个名/值对。属性名是字符串,因此我们可以把对象看成是从字符串到值的映射。
然而对象不仅仅是字符串到值的映射,除了可以保持自有的属性,JavaScript对象还可以从一个称为原型的对象继承属性。对象的方法通常是继承的属性。这种“原型式继承”(prototypal in-heritance)是JavaScript的核心特征。
JavaScript对象是动态的可以新增属性也可以删除属性,但它们常用来模拟静态对象以及静态类型语言中的“结构体”(struct)。有时它们也用做字符串的集合(忽略名/值对中的值)。
除了字符串、数字、true、false、null和undefined之外,JavaScript中的值都是对象。尽管字符串、数字和布尔值不是对象,但它们的行为和不可变对象非常类似。
对象是可变的,我们通过引用而非值来操作对象。如果变量x是指向一个对象的引用,那么执行代码var y = x;变量y也是指向同一个对象的引用,但不是这个对象的副本。通过变量y修改这个对象亦会对变量x造成影响。
对象最常见的用法是创建(create)、设置(set)、查找(query)、删除(delete)、检测(test)和枚举(enumerate)它的属性。我们会在开始的几节讲述这些基础操作。后续的几节讲述高级主题,其中相当一部分内容来自于EC-MAScript 5。
刚才我们通过浅显的语文说明了什么是对象,也有专业的术语描述了对象。现在我们了解什么是属性?对象是由多个属性够成,属性可以是任意数据类型。例如人的属性有身高,肤色,体重;动物的属性有是否是哺乳动物,几只腿。
JavaScript中属性包括名字和值。属性名可以是包含空字符串在内的任意字符串,但对象中不能存在两个同名的属性。值可以是任意JavaScript值。
6.1 创建对象
可以通过对象直接量、关键字new和(EC-MAScript 5中的)Object.create()函数来创建对象。接下来几节将对这些技术一一讲述。
6.1.1 对象直接量
创建对象最简单的方式就是在JavaScript代码中使用对象直接量。对象直接量是由若干名/值对组成的映射表,名/值对中间用冒号分隔,名/值对之间用逗号分隔,整个映射表用花括号括起来。属性名可以是JavaScript标识符也可以是字符串直接量(包括空字符串)。属性的值可以是任意类型的JavaScript表达式,表达式的值(可以是原始值也可以是对象值)就是这个属性的值。下面有一些例子:
var empty = {}; // 没有任何属性的对象
var point = { x:0, y:0 }; // 两个属性
var point2 = { x:point.x, y:point.y+1 }; //
var book = { main title: JavaScript, // 属性名字里有空格,必须用字符串表示
sub-title: The Definitive Guide, // 属性名字里有连字符,必须用字符串表示
for: all audiences, //
for是保留字,因此必须用引号
author: { // 这个属性的值是一个对象
firstname: David, // 注意,这里的属性名都没有引号
surname: Flanagan
}
}; 在ECMAScript 5(以及ECMAScript 3的一些实现)中,保留字可以用做不带引号的属性名。然而对于ECMAScript 3来说,使用保留字作为属性名必须使用引号引起来。在ECMAScript 5中,对象直接量中的最后一个属性后的逗号将忽略,且在ECMAScript 3的大部分实现中也可以忽略这个逗号,但在IE中则报错。对象直接量是一个表达式,这个表达式的每次运算都创建并初始化一个新的对象。每次计算对象直接量的时候,也都会计算它的每个属性的值。也就是说,如果在一个重复调用的函数中的循
您可能关注的文档
- DES加密算法..doc
- DEH培训教材..doc
- DH1718型直流稳压电源故障机理及结构改造..doc
- DIN标准与中国标准对照表..doc
- DISC人格测评..docx
- DigitalMicrograph软件傅立叶变换和反变换图文教程..doc
- DL5004-91火力发电厂热工自动化试验室设计标准..doc
- DLP介绍对比..docx
- DLT620-1997交流电气装置的过电压保护和绝缘配合..docx
- DIY小型数控电脑雕刻机制作全过程1..doc
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国黄铜合页行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国竹工艺家具行业投资前景及策略咨询研究报告.docx
- 2025年中国微机数显自动分析仪市场调查研究报告.docx
- 2026年及未来5年内中国微尘白色粉笔行业投资前景及策略咨询研究报告.docx
- 2025年中国微电脑型压胶机市场调查研究报告.docx
- 2026年及未来5年内中国数字化等功游泳训练测试系统行业投资前景及策略咨询研究报告.docx
- 2025年中国圆形花瓶市场调查研究报告.docx
- 2026年及未来5年内中国植物纤维静淀过滤器行业投资前景及策略咨询研究报告.docx
- 2025年中国超音波手套机市场调查研究报告.docx
最近下载
- 平潭澳海上风电场项目可研收口报告2018年4月版本15工程设计概算表.pdf VIP
- 2024年常州信息职业技术学院单招职业技能测试题库(历年真题).docx VIP
- 腹膜透析指南(2025年版).docx VIP
- 党的二十届四中全会PPT课件.ppt VIP
- 产品设计与实训 设计实训.ppt VIP
- 施工现场建筑垃圾减量化专项方案.pdf VIP
- 《数学史》数学的起源.pptx VIP
- 2026年信息科技课标试题及答案.doc VIP
- 本科课件-ArcGIS Engine地理信息系统开发教程(完整).ppt
- 北京通州区2022-2023学年高一下学期期末质量检测英语试卷 含解析.docx VIP
原创力文档

文档评论(0)