JS面向对象经典案例

JS面向对象经典案例

ID:41246301

大小:23.98 KB

页数:5页

时间:2019-08-20

JS面向对象经典案例_第1页
JS面向对象经典案例_第2页
JS面向对象经典案例_第3页
JS面向对象经典案例_第4页
JS面向对象经典案例_第5页
资源描述:

《JS面向对象经典案例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JS面向对象经典案例//一、通用创建函数functionNew(aClass,aParams){//定义临时的中转函数壳functionnew_(){//调用原型中定义的构造函数,中转构造逻辑及构造参数,用Create方法,来替代原有的构造函数aClass.Create.apply(this,aParams);};new_.prototype=aClass;returnnewnew_();};//PersonvarPerson={//模拟Object.create()方法,初始化Create:function(name,age){this.n

2、ame=name;this.age=age;returnthis;},sayHello:function(){alert("mynameis"+this.name+",myageis"+this.age);}}window.onload=function(){varobj=New(Person,["luolibing",26]);obj.sayHello();//IE9及以上GOOGLEFIREFOX支持,IE8及IE8以下不支持,跟上面的方法类似//getPrototypeOf获取Object的原型,IE版本要求高IE9以上varo=Obj

3、ect.create(Person).Create("liuxiaoling",27);o.sayHello();}functionperson(name){this.name=name;};//二、原型链级,子类需要一个原型指向父类,传递起来比较麻烦person.prototype.sayHello=function(){alert("Hello,I'm"+this.name);};//employeefunctionemployee(name,money){person.call(name);this.money=money;};//子类

4、原型指向父类Personemployee.prototype=newperson();//子类原型添加showMoney方法employee.prototype.showMoney=function(){alert(this.name+this.money);};varem=newemployee("bob",11);em.showMoney();em.sayHello();varpp=newperson("jack");pp.sayHello();//alert(pp.sayHello==em.sayHello);String.protot

5、ype.toString()=function(){};varaaa="bb";aaa.toString();String.prototype.isDate=function(){varreg=/^[0-9]*$/;returnreg.test(this);};alert("11231".isDate());alert("2005-11-11".isDate());functionPerson(name){this.name;};Person.prototype.company="MS";//原型的方法Person.prototype.Say

6、Hello=function(){alert("Hello,I'm"+this.name+"of"+this.company);};varBillGates=newPerson("BillGates");BillGates.SayHello();//由于继承了原型的东西,规规矩矩输出:Hello,I'mBillGatesvarSteveJobs=newPerson("SteveJobs");SteveJobs.company="Apple";//设置自己的company属性,掩盖了原型的company属性//实现了自己的SayHello方法,

7、掩盖了原型的SayHello方法SteveJobs.SayHello=function(){alert("Hi,"+this.name+"like"+this.company+",hahaha");};SteveJobs.SayHello();//都是自己覆盖的属性和方法,输出:Hi,SteveJobslikeApple,hahahaBillGates.三、闭包:什么是闭包要了解什么是闭包,涉及到JS的其他几个特性:作用域链,垃圾回收机制,嵌套函数作用域链:就是函数在定义的时候创建的,用于寻找使用到的变量的值的一个索引,他内部的规则是,把函数

8、自身的变量放在最前面,把自身的父级函数中的变量放到其次,再高一级的放在更后面,以此类推,最后到全局对象为止。当函数中遇到一个变量时,JS解析器会去作用域链中查找,从

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

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

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