• JQUERY中方法参数做回调方法的多层回调callback,实现过滤作用


    $(document).ready(function(){
    	var arr = [1,14,10,8,2,5];
    	function getTask(callback,cond){
    		if(0< cond)
    		{
    			callback(arr);
    		}
    	}
    	var CALLME = {
    		func3 : function(callback){
    			getTask(callback,3);
    
    		},
    		func2 : function(callback){
    			CALLME.func3(function(tasks){
    				callback(tasks.sort(function(taskA,taskB){
    					return taskA - taskB;
    				}));
    			});
    		},
    		func1 : function(callback){
    			CALLME.func2(function(task){
    				callback(task[0]?"first task":null);
    			});
    		}
    	};
    
    	CALLME.func1(function(task){
    		console.log(task);
    	});
    });
    

      

    代码有些乱,后续整理:

    事实上这是一个多层过滤系统,最开始的数组在

    func3中被条件限制,callback被传入值,即被3限制,传入数组

    func2中数组被按数值大小排续

    func1中限制了如果有下标为0的数组值,那么就task为"fisrt task"

    最终CALLME.fun1的参数做为函数被执行,打印出first task;

    这也给了我们有时解读程序的思路:从答案反推问题,有时我们需要从答案入手,找寻逻辑与思路,从而去理解程序。

    而且,这种分层过滤的回调写法更大的好处是你可以直接调用它的任意一层,比如说我只是想给arr排序,那么我只需要

    CALLME.func2(function(task){
    		console.log(task);
    	});
  • 相关阅读:
    Ubuntu 下安装Mongodb
    iOS 配置支付宝
    Spring异步任务处理,@Async的配置和使用
    [Tue, 11 Aug 2015 ~ Mon, 17 Aug 2015] Deep Learning in arxiv
    linux-shell脚本命令之awk
    字符串写入文件
    UVa 10773
    Flex下拉框
    DELPHI dbgrid 选中的是第几行 怎么判断?
    delphi 取得数据集某字段值的六种方法
  • 原文地址:https://www.cnblogs.com/yubolin/p/5217892.html
Copyright © 2020-2023  润新知