js面向对象练习题

js面向对象练习题

ID:21733240

大小:37.00 KB

页数:14页

时间:2018-10-24

js面向对象练习题_第1页
js面向对象练习题_第2页
js面向对象练习题_第3页
js面向对象练习题_第4页
js面向对象练习题_第5页
资源描述:

《js面向对象练习题》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、精品文档js面向对象练习题//一、通用创建函数functionNew{//定义临时的中转函数壳functionnew_{//调用原型中定义的构造函数,中转构造逻辑及构造参数,用Create方法,来替代原有的构造函数aClass.Create.apply;};functionperson{this.name=name;}//IE9及以上GOOGLEFIREFOX支持,IE8及IE8以下不支持,跟上面的方法类似//getPrototypeOf获取Object的原型,IE版本要求高IE9以上varo=Object.create.Create

2、;o.sayHello;window.onload=function{varobj=New;obj.sayHello;//PersonvarPerson={}//模拟Object.create方法,初始化Create:function{},sayHello:function{}alert;this.name=name;this.age=age;returnthis;};};new_.prototype=aClass;returnnewnew_;//二、原型链级,子类需要一个原型指向父类,传递起来比较麻烦person.prototype

3、.sayHello=function{//子类原型指向父类Personemployee.prototype=newperson;//2016全新精品资料-全新公文范文-全程指导写作–独家原创14/14精品文档子类原型添加showMoney方法employee.prototype.showMoney=function{varem=newemployee;em.showMoney;em.sayHello;varpp=newperson;pp.sayHello;//alert;String.prototype.toString=functi

4、on{};};alert;//type.company=“MS”;//原型的方法Person.prototype.SayHello=function{alert;};varBillGates=newPerson;BillGates.SayHello;//由于继承了原型的东西,规规矩矩输出:Hello,I’mBillGatesvarSteveJobs=newPerson;SteveJobs.company=“Apple”;//设置自己的company属性,掩盖了原型的company属性SteveJobs.SayHello;//都是自己覆

5、盖的属性和方法,输出:Hi,SteveJobslikeApple,hahahaBillGates.函数2016全新精品资料-全新公文范文-全程指导写作–独家原创14/14精品文档作用域链:就是函数在定义的时候创建的,用于寻找使用到的变量的值的一个索引,他内部的规则是,把函数自身的变量放在最前面,把自身的父级函数中的变量放到其次,再高一级的放在更后面,以此类推,最后到全局对象为止。当函数中遇到一个变量时,JS解析器会去作用域链中查找,从函数本身变量开始查找,如果没有再上一级,。。一旦找到就不再继续,如果到最后也没有找到需要的变量,则返回

6、undefined垃圾回收机制:一个函数在执行开始的时候,会给其中定义的变量划分内存空间,等到函数执行完毕,这些变量被认为是无用的,对应的内存空间也就被回收了。下次再执行的时候,又分配一个内存空间,如此周而复始。但是如果这个函数内部又嵌套了另一个函数,而这个被嵌套的函数又在外部被调用,并且这个嵌套函数又实用了外部函数的某些变量的话,上面的内存回收机制就会出现问题。如果在外部函数返回后,又直接调用了内部函数,那么内部函数就无法读取到他所需的外部函数中的变量值。所以js解释器在遇到函数定义的时候,会自动把函数和他可能使用的变量)一起保存起

7、来.也就三、闭包:什么是闭包要了解什么是闭包,涉及到JS的其他几个特性:作用域链,垃圾回收机制,嵌套//实现了自己的SayHello方法,掩盖了原型的SayHello方法SteveJobs.SayHello=function{alert;};2016全新精品资料-全新公文范文-全程指导写作–独家原创14/14精品文档是构建一个闭包,这些变量将不会被内存回收器所回收,只有当内部的函数不可能被调用以后,才会销毁这个闭包,而没有任何一个闭包引用的变量才会被下一次内存回收启动时所回收.为什么是3?这是因为闭包中所记录的自由变量,只是对这个变量

8、的一个引用,而非变量的值,当这个变量被改变了,闭包里获取到的变量值,也会被改变.解决的方法之一,是让内部函数在循环创建的时候立即执行,并且捕捉当前的索引值,然后记录在自己的一个本地变量里.然后利用返回函数的方法,重写内部

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。