JavaScript设计模式学习之路——面向对象的思想
2024-08-26 03:17:16
今天,我拿到了张容铭写的这本《JavaScript设计模式》这本书,开始了关于JavaScript更深一点的学习。
看到这本书开始的时候,虽然之前通过看书、一些比较好的视频的讲解,对JavaScript有了基础的认识,但是,在看到书的内容的时候,我内心还是有一种自己差的十万八千里的感觉,之前的代码写法不行,使用全局变量、全局函数,只是面向过程的编程的方法,扩展性、可重用性太低。以后我将每天更新博客,将自己所学每一种设计模式都po出来,我要自己看到自己的进步!!加油!
今天的内容是————面向对象的思想
主要感想:应该摈弃之前面向过程的思想和代码写法,尽量减少全局变量、全局函数的使用。结合我今天看的另外一本《高性能JavaScript》,针对js性能方面来说,全局变量以及DOM中的变量所在的作用域链的位置均在局部变量的所在位置的下方,也就是搜索顺序,先找的是局部变量,后来找的才是全局变量。因此,为了性能的需求、团队的合作和代码的重用性,都应该采用面向对象的思想。
案例:检查姓名、邮箱、密码是否符合规范,详细的检查函数省略。
方法一:
//将所要添加的方法包装与object中
//方法1.使用json式的方法封装函数,缺点:没有使用new,扩展性不强
var CheckObject = {
checkName : function(){
//检查姓名
alert("checkName");
return this;//为链式调用
},
checkEmail : function(){
//检查Email是否合法
alert("checkEmail");
return this;//为链式调用
},
checkPassword : function(){
//检查密码
alert("checkPassword");
return this;//为链式调用
}
}; 方法一调用
CheckObject.checkName().checkEmail().checkPassword();
方法二:
我觉得较为好的一种方法,结合我自己类式调用的习惯,在Function的prototype中添加方法,避免对原生对象Function的污染,创建一个统一的方法为其添加方法,在其添加方法时,为使用类式调用,使其添加的方法在其原型中。
Function.prototype.addMethods = function(name,fn){
this.prototype[name] = fn;
return this;
}
var Methods = function(){};
// var Methods = new Function();
Methods.addMethods('checkName',function(){
//检查姓名
alert("checkName"); }).addMethods('checkEmail',function(){
//检查Email是否合法
alert("checkEmail"); }).addMethods('checkPassword',function(){
//检查密码
alert("checkPassword"); }); //方法二调用时
var m = new Methods();
m.checkName();
希望大家有更好的见解随时reply,如果有误,请不吝赐教!
最新文章
- 使用linq的好处
- SQLServer将表数据导出为Insert语句
- Qt出现cannot find -IGL错误
- 剑指offer?
- poj2780Linearity(多点共线)
- hyper-v 中 安装 Centos 7.0 设置网络 教程
- BZOJ 4551 树
- 汽车XX网站秒杀抢购代码
- oracle数据库执行脚本常用命令总结
- oracle中的sql%rowcount
- 转:浏览器与WEB服务器工作过程举例
- iOS开发——打包静态库与Framework
- 第一次在gitHub上传项目到git.oschina的方法
- 基于FPGA的肤色识别算法实现
- jQuery UI练习
- [UE4]时间轴线TimeLine,Lerp插值
- htop工具使用
- vue - nodejs
- 7 MySQL--记录的增删改查
- VS2017在Release下编译错误C1001