JAVASCRIPT对象基础讲解.pdf

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVASCRIPT对象基础讲解

1.Object对象详解 javascript 里最基本的数据类型是对象。javaScript 里的对象其实是一个无序的属性集合, 属性又是一个个的名-值对。 除了字符串,数字,true,false,null 或者undefined 以外,其他所有的值在JavaScript 里头 都是对象。 对象是引用类型,如果变量x 表示一个对象,当执行var y x;语句后,实际上y 和x 指向 的是同一个对象。所以,当你通过y 改变对象的值,这种变化也会反映到x 上。 Object 是在javascript 中一个被我们经常使用的类型,而且JS 中的所有对象都是继承自 Object 对象的。 1.1 创建对象: 首先我们都知道,对象就是一组相似数据和功能的集合,我们就是用它来模拟我们现实世 界中的对象的。那在Javascript 中,创建对象的方式通常有两种方式:构造函数(new 关键字)和 对象字面量。 1. 字面量表示法: 对象字面量很好理解,使用key/value 的形式直接创建对象,简洁方便。 varbook {}; //创建一个没有属性的对象 varbook { name :TheDefinitive Guide, main title :JavaScript, //当属性名中间有空格,或者-时,要用引号把属性名括起 来 author : { //对象的属性也可以是对象 firstname :Rex, lastname :Mai } }; 这种方式直接通过花括号将对象的属性包起来,使用key/value 的方式创建对象属性,每个 属性之间用逗号隔开。 注意:如果是最后一个属性,后面就不要加逗号,因为在一些旧的浏览器下会报错。 2. 使用new 关键字: var o new Object();// 创建一个空对象,效果等同{}. var d new Date();// 创建一个表示当前时间的对象 varr newRegExp(js);// 创建一个正则表达式对象 varperson new Object(); person.name 狼狼的蓝胖子; person.age 25; 或者 functionPerson(name,age) { this.name name; this.age age; this.show function(){} } varperson newPerson(Jack, 15); Person.show() 这种方式使用new 关键字,接着跟上Object 构造函数,再来给对象实例动态添加上不同的属性。 原型对象概念 无论什么时候,只要创建一个新函数,就会根据一组特定的规则为该函数创建一个prototype 属性,这个属性指向函数的原型对象。在默认情况下,所有原型对象都会自动获得一个constructor (构造函数)属性,这个属性包含一个指向 prototype 属性所在函数的指针。而通过这个构造 函数,可以继续为原型对象添加其他属性和方法。创建了自定义的构造函数后,其原型对象默 认只会取得 constructor 属性;至于其他方法,则都从 Object 继承而来。当调用构造函数创建 一个新实例后,该实例的内部将包含一个指针 (内部属性),指向构造函数的原型对象。 ECMA-262 第5版管这个指针叫 [[Prototype]] 。脚本中没有标准的方式访问 [[Prototype]],但 Firefox、Safari 和Chrome 在每个对象上都支持一个属性__proto__;而在其他实现中,这个属性 对脚本是完全不可见的。不过,要明确的真正重要的一点就是,这个连接存在于示例和构造函 数的原型对象之间,而不是存在于实例和构造函数之间。 这段话基本概述了构造函数、原型、示例之间的关系,下图表示更清晰 其实javascript 的new 关键字只不过做了五件事情。 1.创建Object 2.查找class 的prototype 上的所有方法、属性,复制一份给创建的Object (注意,如果prototype 上有属性是function 或者数组或者Object,那么只复制指针) 3.将构造函数classA 内部的this指向创建的Object 4.创建的Object 的__proto__指向class 的prototype 5.执行构造函数class // 定义类 类名字是 classA f

文档评论(0)

yaocen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档