- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * 第二课 第一节 Function基础 本课目标:三大概念 原型prototype 作用域 闭包 注意:本课非常重要,没有这些概念是无法阅读源码的。 一般情况下,这节课会比较“纠结”,如果你过了,你就迈入了“高级js程序员”的大门。 function的基础概念 js对象最本质的数据结构:JSON(类似Java的HashMap) 函数不能重载,因为相同的key不能出现2次(类比HashMap)---AS3里面目前也不支持函数重载 函数都是可变长参数的,关于在函数内部用arguments属性获得参数 函数的调用方式(给出4个例子):自动执行、call、apply、obj[‘myfunc’]() 非常重要: func.call(scope,[…]) func.apply(scope,[…]) 函数是可以嵌套的 function outer(){function inner(){}} Observable上的事件监听器是怎么执行的?API里面那些scope是什么意思?监听器里面的那些this指向谁? 一、原型prototype prototype是函数的属性,实例对象是没有prototype的 属性查找机制和同名覆盖(再次复习一下全局变量引起的效率损失问题) 可以随时向prototype上添加或者删除属性,类的所有实例都会收到影响,向prototype添加函数的两个例子: Animal.prototype.sayHello=function(){} Animal.prototype={ sayHello:function(){} } delete Animal.prototype.sayHello prototype上有一个不可枚举的constructor属性 二、作用域 作用域在函数定义时已经确定 想改变作用域?没问题:func.call(scope,[…]) func.apply(scope,[…]) 这2种方式来改变函数的作用域。 注意:作用域是函数的组成部分,js引擎会为函数维护作用域内的所有属性 三、闭包 模拟私有成员(例子) 闭包的定义:函数+它的作用域链 闭包三要素: 1、在一个函数内部返回了另一个函数引用; 2、返回的函数缓存了外层函数定义的局部变量; 3、在其它的作用域中执行返回的函数 万花筒写轮眼---无穷的变化! ---请自己写一遍视频中点击Table获取被点击行号的例子 ---请自己写一遍“模拟多线程” 闭包很危险,使用请谨慎! 使用以上概念读Ext的源码 提纲复习完成,休息一下之后,开始交流和提问 谢谢! * * * * * * * * * * * * * * * * * * * * *
文档评论(0)