zoukankan      html  css  js  c++  java
  • 阅读《JavaScript设计模式》第一章心得

    1、明白自己

    明白了自己写的代码为什么难懂且臃肿,不方便阅读且效率低。最主要的是为什么整套流程下来只能我一个人写,因为这样的代码根本没有团队力,协同能力差。对js理解的不过透彻。

    2、真正的学会对象与类的区别

    类 :对一群具有相同特征的对象的集合的描述;
    对象:真实存在的对象个体;

    比如人类,指的是一个范围; 对象:比如某个人,指的是这个范围中具体的对象。

    Javascript中的function作为构造函数时,就是一个类,搭配上new操作符,可以返回一个对象。
    当然,要生成一个对象,也可以用字面量的形式,例如var obj = {x: 1, y: function(){} };
    类可以理解为一个模板,而对象就是根据这个模板造出来的具体实例。

    3、在函数的原型中添加统一添加方法的功能方法

    一般不把功能函数封装在原型里面,因为这样会污染全局,造成不必要的开销。所以我会抽象出一个统一的添加方法的功能方法。

    例如:

    Function.prototype.addMethod=function(name,fn){

      this[name]=fn;

    }

    如果想添加邮箱验证和姓名验证方法可以这样做

    var methods=function(){};

    或者

    var methods = new Function();

    methods.addMethod('checkName',function(){

      //验证姓名

    });

    methods.addMethod('checkEmail',function(){

      //验证邮箱

    });

    methods.checkName();

    methods.checkEmail();

    4、函数链式添加方法

    在原型中添加功能的方法中添加返回this语句,这样每次添加完一个方法后都会返回methods函数。

    Function.prototype.addMethod= function(name,fn){

      this[name]=fn;

      return this;

    }

    也可以为每个添加的方法返回this。

    var methods = function(){};

    methods.addMethod('checkName',function(){

      //验证姓名

      return this;

    }).addMethod('checkEmail',function(){

      //验证邮箱

      return this;

    });

    methods.checkName().checkEmail();

    这是用函数式的调用方式

    5、类式的调用方式(链式添加)

    Function.prototype.addMethod = function(name,fn){

      this.prototype[name]=fn;

      return this;

    }

    var Methods = function(){};

    Methods.addMethod('checkName',function(){

      //验证姓名

      return this

    }).addMethod('checkEmail',function(){

      //验证邮箱

      return this

    });

    但是这时候我们就不能直接使用了,要通过new关键字来创建新的对象了。

    var m = new Methods();

    m.checkEmail().checkEmail()

    两个疑惑:1、函数添加方法的功能方法语句为什么是this[name],为什么是这样写的?

         2、类式添加方法的功能方法语句为什么是this.prototype[name]?这样的话方法不都添加到了原型中去了吗?这样不会污染全局吗?

  • 相关阅读:
    程序中不要出现标识符完全相同的局部变量和全局变量
    不要出现仅靠大小写区分的相似的标识符
    程序中不要出现仅靠大小写区分的相似的标识符
    命名规则尽量与所采用的操作系统或开发工具的风格保持一致
    标识符的长度应当符合“min-length && max-information”原则
    标识符应当直观且可以拼读,可望文知意,不必进行“解码”
    当代码比较长,特别是有多重嵌套时,应当在一些段落的结束处加注释
    注释的位置应与被描述的代码相邻
    尽量避免在注释中使用缩写
    注释应当准确、易懂,防止注释有二义性
  • 原文地址:https://www.cnblogs.com/Juaoie/p/9186937.html
Copyright © 2011-2022 走看看