高阶函数
函数可以作为参数传递
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); };
单例模式