第十章 JS高级教程.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
昨天内容回顾 作用域链 定义 作用 ① 变量必须先声明、后使用 ② 内部环境 可以访问 外部环境的变量,反之不然 ③ 变量的作用域是声明时决定的,不是运行时 AO(Active Object)活动对象 js代码执行的时候有环境划分(每个函数内部都是一个环境、最外部有window全局环境) 每个环境内部都有AO活动对象 AO的本身成员属性、成员方法就是在该环境里可以访问的变量、函数 最外部环境访问变量信息,可以设置window加以限制。 在环境内部获得变量信息看似是动态过程(逐步向上级环境寻找),实际是“固态”过程,变量早早地已经固化为本身AO的成员。 执行环境访问变量类型及顺序 内部变量 内部函数 形参 外部变量(变量、函数、形参) 重新认识全局变量和局部变量 全局变量的AO活动对象就是window 局部变量:在一定范围内其也是“全局变量”。 闭包 定义 两个彼此嵌套的函数,内部函数就是闭包,形成条件return返回内部函数 特点:闭包函数有权利访问父级环境的变量信息 使用规则 同一个闭包机制可以生成许多闭包函数,这些函数彼此独立、内部也有个性化信息。 面向对象 创建对象 var obj = {成员名称:成员值}; var obj = new 函数(); var obj = new Object(); 对象在内存的分配 空间:栈、堆、代码、数据 函数执行的各种方式 普通调用 构造函数执行 对象成员方法 call和apply方式执行 作业 使用闭包,给无序列表设置“onclick”事件,。使得被单击的时候弹出对应的li的内部信息,同时考虑优化闭包函数代码。 三. 面向对象 三大特性:封装、继承、多态 1. 封装特性 在php里边,通过给成员声明关键字体现封装。public protected private 在javascript里边,封装只体现public、private public公开的,在构造函数里边通过this关键字声明的成员都是公开的,函数内部、外部都可以调用 private私有的,在构造函数里边声明局部变量,就是私有成员 2. 继承特性 2.1 原型继承介绍 php里边:一个类去继承另一个类,继承类实例化对象也会拥有被继承类的成员 javascript里边:(构造)函数可以继承另外一个对象,构造函数实例化出来的对象除了本身成员外还有拥有被继承对象的成员。 原型继承关键字:prototype。 2.2 实现原型继承 函数.prototype.成员名称 = 值; //继承单一成员 函数.prototype = 对象; //继承一个对象 2.3 原型继承注意 ① 对象 和 单一成员同时继承,需要先继承对象、再继承成员 ② 多个对象 同时继承,最后对象起作用 ③ 继承对象的成员 与 本身成员名称一致,体现本身成员结果 对象访问成员的类型及顺序 4. 原型链 什么是原型链: 构造函数 继承 一个对象 继承对象也有构造函数,其构造函数还去继承其他对象 其他对象也有构造函数,构造函数还去继承其他对象 其他对象也有构造函数,构造函数还去继承其他对象 。。。。。 以上继承形成了一个继承的链条,称为原型链,原型链的顶端是Object 对象访问一个成员顺序: ① 对象本身获取 ② 对象构造函数里边获取 ③ 构造函数继承对象本身获取 ④ 构造函数继承对象的构造函数里边获取 。。。。。。 直到找到Object成员为止。 例如constructor、hasOwnPrototype、isPrototypeOf等等都是原型链顶端Object的成员。 对象遍历及成员属组判断 for-in for var 成员变量 in 对象 对象[成员变量] //获得具体成员信息 原型衍生继承-复制继承 总结: 封装特性体现,public/private 原型继承 构造函数.prototype = 对象; 构造函数.prototype.成员 = 值; 对象和单一成员都可以继承 对象访问成员类型及顺序 原型链 对象的遍历和成员属组判断 for-in 对象.hasOwnProperty(成员名称) 复制继承 7. 静态成员 如果一个类里边,有这样的属性,其值不随便发生变化,全部对象都共用一个值,该属性就声明为static静态的,其在内存中无论创建多少个对象(或者其说其与具体对象无关)都只占据一份空间。 为什么使用静态成员 ① 静态成员归属到类本身,可以明显的加快访问速度。 ② 节省内存效果 上图,每个对象都有country属性,而他们保存的信息是相同的,这样如果创建多个对象,会对内存造成浪费情况。 解决:给country属性设置为static静态的。会对内存空间有节省。 一个类,每实例化一个对象,在堆

文档评论(0)

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

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

1亿VIP精品文档

相关文档