做完party_bid四张卡后,要进行重构,重构是为了让代码更容易理解,把代码放在该放的位置.重构后的代码,每个函数只做一件事,每个方法不超过15行,尽可能的减少内圈复杂度,将管理数据的模型抽到model里,也就是说model里实现所有数据的增删改查,controlle只向view提供指示性标志变量和数据源,controll不实现任何功能方法,只通过调用方法实现逻辑控制,尽可能的用underscore代替循环.下面讲一下我在重构过程中我遇到的一些问题.
1.举个例子,用_.find代替for循环,并抽成方法
Bid.activity_current_activity = function () { var action = JSON.parse(localStorage.getItem("activities")) return( _.find(action, function (act) { return act.name == localStorage.current_activity })) //找到当前的活动并返回,_.filter会返回所有符合的数组 }
2.定义类方法
function Activity (name){ this.name=name; this.activity_status='false'; this.apply_list=[]; this.bid_status='false'; this.bid_list=[] } Activity.prototype.save_message=function(){ //prototype可以让我们向对象添加属性和方法 var activities = JSON.parse(localStorage.getItem("activities")) || []; activities.unshift(this) //把Activity压入activities localStorage.setItem("activities", JSON.stringify(activities)) }
3.讲一下用的比较多的undersc0re里的_.findwhere
_.findWhere(action,{name:localStorage.current_activity}).bid_status="true" //找到当前的活动名,并对其中的bid_status赋值true,然后可以用localStorage存储
4._.map的用法
_.map({one: 1, two: 2, three: 3}, function(num, key){ return num * 3; }); //对数组中的元素遍历,会返回{3,6,9}
5.通过function传值还可以把$scope抽出来抽成方法
Bid.judge_check_bid_price_bid_count = function ($scope) { if (!Bid.check_bid_price_bid_count()) { $scope.success = "false" $scope.fail = "true" //通过传值可以把success的值传到页面,要善于用function的传值,会大大的提高效率 } }
切忌函数的命名一定要做到见名知意,重构没有最好,只有更好,继续学习underscore的其它方法,简化代码
相关推荐
数据格式 uid_score_bid 如 dingdanglbh,4.0 ,25862578 Luna-cat,5.0 ,25862578 aiyung,5.0 ,25862578
9点潮流计算PSO的优化算法 很简单,只要在MATLAB运行就可以
欧美1分钟历史数据,2003年5月到2019年2月,MT4EA回测好用。
Repaso_Clases_Objetos_call_aplly_bid_22_02_2021
去噪代码 matlab
mc_bid
crc-16的编码,使用的多项式是G(x)=x^16+x^12+x^5+1
backup_1000821v1001400000.zip
附加服务器 欢迎使用Addons Server存储库! 请随时访问托管的当前项目的网页。 如果要安装,请遵循 指南。 我们希望您的帮助! 如果您有任何疑问,可以通过与我们联系。 请在此处报告错误: : 或您可以通过访问AMO...
bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe
出价统计信息和详细信息 作为签约过程一部分而...bids.details数组用于提供一个或多个Bid对象,每个对象代表收到的唯一出价。 bids.statistics数组用于表示有关投标和投标者数量的关键统计信息。 数组中的每个条目都
bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file
Bid Documents - Toyota Hilux Fx
bid0-lid64-steam.game_steamzc_2.0.0.2242.exe
演示脚本:Demo_BID_PnP.m%========================================== ========================% 接触: Marina Ljubenovic-葡萄牙里斯本电信研究所- Mario AT Figueiredo-葡萄牙里斯本电信学院-%============...
VHDL语言编写,实现双向移位寄存器功能,在MAX+plus软件下实现
为什么使用简单有效的二进制文件格式:密集刻度格式(DTF) 存储形状为:( (timestamp, seq, is_trade, is_bid, price, size)订单簿(timestamp, seq, is_trade, is_bid, price, size)数据元组。 按时间戳+ seq排序...
bid格式招投标文件阅读器,可以打开浏览、管理电子招标文件,如果打不开标书文件,请按下面步骤检查:1、请查看招标文件(.bid文件)是否下载完全,请用IE下载工具下载;2、查看IE浏览器版本,如果版本低于IE8,低于IE...
create index book_bid_idx on book(bid); create index abc on student(sid,sname); create index abc1 on student(sname,sid);他们是不同的 2、查看索引 select index_type,index_name,table_name,uniqueness from...
mining_bid_data Hadoop