博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何组织一个模块代码
阅读量:6325 次
发布时间:2019-06-22

本文共 1210 字,大约阅读时间需要 4 分钟。

前言:在平常我们实现代码的过程中可能有一块功能能单独成为一个模块包含几个方法或是几个参数。为了有更好的代码组织结构和让程序耦合度更低我们可以尝试的把他组织成一个模块。

关于IIFE:在把功能模块化之前,我们先来了解一个概念IIFE(立即调用函数表达式),看一下下面这两段程序。

console.time()var s = 0;for (var i = 0; i < 1000000; i++) {    s += i;};console.log(s);console.timeEnd();console.time();(function x() {    var s = 0;    for (var i = 0; i < 1000000; i++) {        s += i;    };    console.log(s);})();console.timeEnd();

测试结果:

default: 17.2ms;default: 3.9ms;

运行两个程序,可以很明显的发现第二种比第一种的速度快很多,因为第二种IIFE调用,避免了全局变量,毕竟全局变量的查找是比较耗时的,并且降低了程序的耦合度。

进入正题,假设我们要实现一个人的功能(自我介绍,穿。。。)现在我们来编写这模块。

var person = (function() {    var name = '',        age = 0;    //初始化    function init(username, userage) {        name = username;        age = userage;    }    //自我介绍    function selfintro() {        console.log('我是' + name + '今年' + age);    }    //吃    function eat(food) {        console.log('我是' + name + '我在吃' + food);    }    //方法集成为一个对象    var personAPI = {        init : init,        selfintro : selfintro,        eat : eat    };    //暴露对外接口    return personAPI;})();//调用,先对这个人进行初始化,在调用行为函数person.init('cws', 18);person.selfintro();person.eat('西瓜');

测试结果:

我是cws今年18 我是cws我在吃西瓜

这样是不是把我们的人的模块独立出来了,让程序更加的清晰,降低了耦合度。

这只是比较简单的一个功能,我把一个原生的大图滚动用模块化封装了一下,具体可参考:

转载地址:http://eomaa.baihongyu.com/

你可能感兴趣的文章
iOS 10.3应用内更换icon
查看>>
全局光照---光子映射
查看>>
支持向量机---线性支持向量机与软间隔最大化
查看>>
puppet自动化管理工具学习之文件
查看>>
Ubuntu安装RPM格式软件包
查看>>
SQL Server中的临时表和表变量 Declare @Tablename Table【转】
查看>>
汇编语言指令英文全称
查看>>
pure-ftpd脚本安装
查看>>
Linux NC 命令
查看>>
ThinkingInJava_6
查看>>
抓取安居客二手房经纪人数据,python爬虫自动翻页
查看>>
Office 2013 正式版--英文版/简体中文版下载(正版验证)
查看>>
iOS程序框架设计之皮肤切换功能 (白天与夜间效果)
查看>>
iptables
查看>>
Project facet Java 6.0 is not supported by target runtime Apache Tomcat v5.5.
查看>>
一个全新的拖拽分页—艺术啊
查看>>
Linux学习之CentOS(三十)--SELinux安全系统基础
查看>>
LVS+keepalived高可用群集
查看>>
jQuery库简介
查看>>
win7系统设置电脑不待机状态的操作方法
查看>>