高阶函数

函数可以作为参数传递

1.回调函数

/*当我们想使用ajax异步请求数据,然后利用返回的数据进行操作,我们可以callback函数作为参数传入ajax的方法中。
请求完成后再执行*/
var getUserInfo=function(userId,callback){
    $.ajax('url'+userId,function(data){
        if(typeof callback==='function'){
            callback(data);
        }
    })
}

getUserInfo(userId,function(data){
    console.log(data.userName);
})

把可变的部分封装成函数作为参数传入,使函数更加灵活

函数作为返回值输出

判断数据的类型

var Type = {};
//for循环批量注册函数
for (var i = 0, type; type = ['String', 'Number', 'Array'][i++];) {
    (function(type) {
        Type['is' + type] = function(obj) {
            return Object.prototype.toString.call(obj) === '[object ' + type + ']';
        }
    })(type);
};

单例模式

原文地址:https://www.cnblogs.com/t1amo/p/6770042.html