前端学习心得-javascript设计模式与开发实践-高阶函数
2017-11-29 11:37
393 查看
高阶函数(满足至少一点):1、函数可以作为参数被传递
常用于做回调函数,用于分离业务逻辑中容易变化的部分
2、函数可以作为返回值输出
让函数在执行完后继续返回一个可执行函数
将类型作为参数传入函数,提高代码的复复用性
循环注册类型判断函数
注:函数中返回的函数在第一次调用是不会执行,在第二次及以后再调用时则返回函数外部的内容也不会再执行
常用于做回调函数,用于分离业务逻辑中容易变化的部分
2、函数可以作为返回值输出
让函数在执行完后继续返回一个可执行函数
类型判断
普通方法,创建一个对象,把每种对象的判断方法作为属性依次写入isType = { isString: function(obj){ return Object.prototype.toString.call(obj) === '[object String]'; }, isArray: function(obj){ return Object.prototype.toString.call(obj) === '[object Array]'; }, isNumber: function(obj){ return Object.prototype.toString.call(obj) === '[object Number]'; }, }
将类型作为参数传入函数,提高代码的复复用性
isType = function(type){ return function(obj){ return Object.prototype.toString.call(obj) === '[object '+type+']'; } } var isString = isType("String")
循环注册类型判断函数
var Type = {}; for(var i = 0, type; type = ['String', 'Array', 'Number'][i++];) { (function(type) { Type['is' + type] = function(obj) { return Object.prototype.toString.call(obj) === '[object ' + type + ']'; } })(type) } alert(Type.isArray([]))代码中var i = 0, type; type = ['String', 'Array', 'Number'][i++]表示
var i = 0; var type = ['String', 'Array', 'Number']; if(type[i]) i++;当type[i]不存在时则终止循环
注:函数中返回的函数在第一次调用是不会执行,在第二次及以后再调用时则返回函数外部的内容也不会再执行
相关文章推荐
- 前端学习心得-javascript设计模式与开发实践-命令封装模式
- 前端学习心得-javascript设计模式与开发实践-AOP面向切面编程
- 前端【学习心得】HTML基础 | 第一周【前端工程师养成计划】DW开发工具
- 《javascript设计模式与开放实践》学习(三)高阶函数的应用
- 发挥个人的优势,踏踏实实的学习前端开发,为你传授学习心得
- 【学习笔记javascript设计模式与开发实践(闭包和高阶函数)----3】
- 【学习笔记javascript设计模式与开发实践(闭包和高阶函数)----3】
- 我理解的一个程序员如何学习前端开发
- flex 学习开发心得 to be continued...
- 微信开发学习笔记(一):前端图片缓存问题
- 学习从实践开始之jQuery插件开发 菜单插件开发
- 从零开始学习前端开发 — 16、CSS3圆角与阴影
- 前端开发是什么以及我们要学习什么
- JavaScript设计模式与开发实践 – 观察者模式
- 开始学习web前端开发知识,小白的路一步步走
- 【WEB前端开发最佳实践系列】JavaScript篇
- 学习Web前端开发感想一二
- 开发规范:前端代码命名语义化推荐实践
- web前端开发学习路线
- Chrome插件开发学习心得(一)之前期开发