window.meng = window.meng || {};
(function () { var items = []; meng.queue = {
/**
*
* @param {Function} item
*/
addItem: function (item) {
items.push(item);
},
/**
*
* @param {Function} item
*/
removeItem: function (item) {
if (item){
var index = items.indexOf(item);
if (index != -1) {
items.splice(index, 1);
}
}else {
items.pop();
} },
removeAllItem: function (item) {
while (true) {
var index = items.indexOf(item);
if (index != -1) {
items.splice(index, 1);
} else {
return false;
}
} },
removeAll: function () {
items.splice(0, items.length);
},
runItem: function () {
for (var i = 0; i < items.length; i++) {
items[i]();
}
}
} })();

代码测试

 (function () {

     function logA() {
console.log("A");
} function logB() {
console.log("B");
} function logC() {
console.log("C");
} function queue() {
meng.queue.addItem(logA);
meng.queue.addItem(logC);
meng.queue.addItem(logC);
meng.queue.removeAllItem(logB);
meng.queue.removeItem(logA);
meng.queue.removeAll();
meng.queue.removeItem(); meng.queue.runItem();
} function init() {
console.log("排序之前");
logA();
logB();
logC();
console.log("排序之后"); queue();
} init();
})();

js简单模仿队列的更多相关文章

  1. 用原生js简单模仿angular的依赖注入

    大家都知道angular 依赖注入很神奇,跟我们平常写代码的风格思维差别很大,不过仔细分析确是一个很有意思的东西,依赖注入早期也叫依赖倒置,是java中有的.废话不多少直接上例子 本帖属于原创,转载请 ...

  2. 简单模仿拉钩网上的“hot_info”

    目录 前言 技术 判断进入div的方向 动画 绑定事件 css html 还需改进的地方 前言 突然想起来之前看到拉钩网上的hot_info(不知道该叫什么,但是拉钩网上这个div的class是hot ...

  3. js简单 图片版时钟,带翻转效果

    js简单 图片版时钟,带翻转效果 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...

  4. js简单操作Cookie

    贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...

  5. js简单弹出层、遮罩层

    <html> <head> <title>js简单弹出层</title> <style> /*阴影边框效果*/ .box-shadow-1 ...

  6. Tourist.js – 简单灵活的操作指南和导航插件

    Tourist.js 是一个基于 Backbone 和 jQuery 开发的轻量库,帮助你在应用程序创建简单易用的操作指南和导航功能.相比网站,它更适合用于复杂的,单页网站类型的应用程序.Touris ...

  7. js简单显示和隐藏div,触发超链接,动态更改button值,setInterval()简单使用,jquery easyui弹出框简单使用 .

    js简单显示和隐藏div .<!DOCTYPE html> .<html> .<head> .<meta charset="UTF-8"& ...

  8. Gulp.js - 简单、直观的自动化项目构建工具

    Gulp.js 是一个简单.直观的构建系统.崇尚代码优于配置,使复杂的任务更好管理.通过结合 NodeJS 的数据流的能力,你能够快速构建.通过简单的 API 接口,只需几步就能搭建起自己的自动化项目 ...

  9. C语言 简单的队列(数组队列)

    //简单的队列 #include<stdio.h> #include<stdlib.h> #define datatype int #define N 10 //定义队列结构体 ...

随机推荐

  1. 禁止在 .NET Framework 中执行用户代码。启用 "clr enabled" 配置选项

    exec sp_configure 'show advanced options', '1';goreconfigure;goexec sp_configure 'clr enabled', '1'g ...

  2. IP地址验证

    /** * 验证IP地址 * * @param 待验证的字符串 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false ...

  3. 用ActionSupport实现验证

    第一种: 只要Action类继承了ActionSupport,就可以用验证方案了 是个原始的方案,需要自己写代码,但是很灵活,登陆案例 不足:业务处理和验证的代码混在一起,不方便验证部分的复用和维护 ...

  4. C#计算某一些任务的执行时间(消耗时间)

    class Program { static void Main(string[] args) { System.Diagnostics.Stopwatch sw = new System.Diagn ...

  5. poj 1696 Space Ant (极角排序)

    链接:http://poj.org/problem?id=1696 Space Ant Time Limit: 1000MS   Memory Limit: 10000K Total Submissi ...

  6. ABAP 没有地方输入\H 进入DEBUG 怎么办?

    把如下代码保存,命名debug.txt  ,把这个文件拖拉到要调试的窗口. [FUNCTION]Command=/HTitle=Barry TestType=SystemCommand

  7. tomcat PermGen space

    centos: 修改Tomcat中的catalina.sh文件.--用了这个 在catalina.sh文件中,找到cygwin=false,在这一行的前面加入参数,具体如下 # vim TOMCAT_ ...

  8. Codeforces723E One-Way Reform【欧拉回路】

    题意:给你n点m边的图,然后让你确定每条边的方向,使得入度=出度的点最多 . 度数为偶数的点均能满足入度 = 出度. 证明:度数为奇数的点有偶数个,奇度点两两配对连无向边,则新图存在欧拉回路,则可使新 ...

  9. 12 Using_explain_plan

    The row source tree is the core of the execution plan. The tree shows the following information: An ...

  10. hdu3060Area2(任意多边形相交面积)

    链接 多边形的面积求解是通过选取一个点(通常为原点或者多边形的第一个点)和其它边组成的三角形的有向面积. 对于两个多边形的相交面积就可以通过把多边形分解为三角形,求出三角形的有向面积递加.三角形为凸多 ...