码迷,mamicode.com
首页 > 其他好文 > 详细

函数存储额另一种思路

时间:2015-12-21 21:51:20      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

有时候需要存储一组函数,但要确定函数在这个集合中不能重复,绝大多数第一个想到的是将所有的函数保存在数组中,然后遍历数组检查重复的函数,其实可以利用函数属性的特性,给函数添加一个附加属性实现

var store = {
			nextId:1,
			cache:{},
			add:function(fn){
				if(!fn.id){
					fn.id = store.nextId++;
					return !!(store.cache[fn.id] = fn);
				}
			}

		}
		var fn = function(){}
		console.log(store.add(fn));
		console.log(store.add(fn));

 在add中我们首先检测要添加的属性是否有一个id属性,如果有,则表示函数已经处理过,忽略它,如果没有则给函数分配一个id属性,然后将函数作为一个cache属性添加进来,同时使用id值作为属性名称。

!! 构造是一个可以将任意javascript表达式转化为等效布尔值的简单方式。例如!!"he shot me down" === true

函数存储额另一种思路

标签:

原文地址:http://www.cnblogs.com/junwu/p/5064704.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!