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();
})();