document..docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第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中则报错。对象直接量是一个表达式,这个表达式的每次运算都创建并初始化一个新的对象。每次计算对象直接量的时候,也都会计算它的每个属性的值。也就是说,如果在一个重复调用的函数中的循

文档评论(0)

tiangou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档