前端学习心得-javascript设计模式与开发实践-高阶函数

本文介绍了JavaScript中的高阶函数概念及其应用场景,并提供了一种利用高阶函数进行类型判断的方法,通过实例展示了如何定义和使用这些函数来提高代码的复用性和可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高阶函数(满足至少一点):

1、函数可以作为参数被传递

常用于做回调函数,用于分离业务逻辑中容易变化的部分

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]不存在时则终止循环

注:函数中返回的函数在第一次调用是不会执行,在第二次及以后再调用时则返回函数外部的内容也不会再执行



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值