party_bid转眼间就做到了重构这一步,从刚开始的小白,到现在的半小白,还是有点小感慨的。。。这不是日记,就不瞎扯了,还是说说正题吧,接触angularJS已经一个月了,重构做完了,第一个小的作业也就算是告一段落了,现在写一些自己这段时间案来的理解,因为是边做party_bid边学习,自己理解的会多一些,希望看到的前辈们多指正!
一、我理解的重构应该算是angulaMVC模型的具体体现,model只是实现数据的增删改查,他不用去考虑这些数据如何显示、如何调用,他实现的只是最基本的数据操作;view实现的是图形界面的设计和显示;controller则是负责数据与请求的调用和处理,他会实现一些数据处理上的逻辑。
二、在重构之前,我写的代码可以说完全就是面向过程的,没有加入一点面向对象的思想,好吧,其实是那会儿我还不知道面向对象的思想是怎么个意思。。。等到了重构这一步,通过了解,才知道重构就是把面向过程的代码转化为面向对象的。通过调用model中的方法,简单明了的让读代码的人了解到整个代码的意思和结构,达到看者皆懂的目的。
面向对象的做法,其实就是按照“把复杂问题化简为单个的小问题”一般性工作思路,将程序要解决的问题切分为相对独立的实体,已达到理清其中关系明确任务边界的目的。
三、prototype属性
因为之前没有用过这个方法,所以在网上了解了一下,通过对多篇博客文章的综合和自己的理解,大概可以认为prototype这个属性类似于JAVA中的类继承,但是没有父类与子类的区分。在JS中,prototype的用途是向对象添加属性和方法,实现了一种类似于对实例化对象的继承
<script type="text/javascript"> function employee(name,job,born) { this.name=name; this.job=job; this.born=born; } var bill=new employee("Bill Gates","Engineer",1985); employee.prototype.salary=null; bill.salary=20000; document.write(bill.salary); </script> 输出: 20000
四、在将之前面向过程的方法抽成model后,自己常常犯的错误就是忘了传参数,从而导致好多时间都因为这个浪费在了查看代码逻辑上。。。。
五、$scope的用法
在我看来,scope起得作用就是JS双向绑定机制中的中间桥梁,我把它看成一个容器,他可以将controller中的scope作用域呈现给view或者model,也可以将view中所需要渲染传递的值放到容器中,呈现给controller中的逻辑方法进行调用,例如:
view: ul 竞价结果:{{winner_name}} {{winner_price}} {{winner_phone}} controller: jj_analyze($scope) model: j_analyze = function ($scope) { Bids.messages_bid() if (Bids.messages_bid()) { $scope.title = Bids.messages_bid().bid $scope.number = Bids.messages_bid().messages.length $scope.middle = Bids.price_number() judge_jj_people_number($scope) } }
上面代码同样运用到了function的参数传递
放上一个链接,便于大家共同学习关于$scope的内容:
http://blog.segmentfault.com/chao2/1190000000361245
可能是由于这是我接触编程以来第一次重构,还是有好多地方不能理解,还是希望以后多几次经验,把工作做得更好吧!
相关推荐
数据格式 uid_score_bid 如 dingdanglbh,4.0 ,25862578 Luna-cat,5.0 ,25862578 aiyung,5.0 ,25862578
标题中的"case9_bid.rar_PSO_PSO power_PSO 潮流_case9_pso power flow"揭示了这个压缩包文件包含的是一个关于电力系统潮流计算的案例,使用了粒子群优化(PSO, Particle Swarm Optimization)算法。PSO是一种基于...
标题中的"crc16-CCITT.rar_ccctt.5com_ccctt3bid_ccctt9._bid_crc16 ccitt ver"可能是指一个包含CRC-16 CCITT实现相关资料的压缩文件,其中包含了各种文档、源代码或测试向量。"ccctt.5com"、"ccctt3bid"、"ccctt9._...
该招标项目前端设计源码采用JavaScript编写,包含280个文件,涵盖177个JavaScript文件、26个CSS文件、24个HTML文件、22个Java文件以及少量地图、JSON、图像、XML等文件。整个项目旨在打造一个功能完善、界面美观的...
欧美1分钟历史数据,2003年5月到2019年2月,MT4EA回测好用。
"mc_bid"通常在IT行业中指的是“Multi-Channel Bid”,这是一种广告投放策略,特别是在数字营销领域,用于优化广告在多个渠道上的出价。这个概念主要应用于程序化广告(Programmatic Advertising),通过自动化的...
标题 "Repaso_Clases_Objetos_call_aplly_bid_22_02_2021" 暗示这是一个关于回顾类与对象、`call` 和 `apply` 方法以及可能涉及到的 JavaScript 语言特性的教程或复习资料。描述部分的信息较为简单,与标题相同,...
去噪代码 matlab
标题“backup_1000821v1001400000.zip”和描述中的信息“backup_1000821v1001400000.zip”暗示这是一个备份文件,可能包含了某个系统或应用在特定时间点的数据快照。通常,这样的文件用于防止数据丢失,便于恢复到...
bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe
bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file
出价统计信息和详细信息 作为签约过程一部分而...bids.details数组用于提供一个或多个Bid对象,每个对象代表收到的唯一出价。 bids.statistics数组用于表示有关投标和投标者数量的关键统计信息。 数组中的每个条目都
标题“bid_shift_reg.rar_plus”暗示我们关注的焦点是一个与数字电路设计相关的项目,特别是使用VHDL(Very High-Speed Integrated Circuit Hardware Description Language)编写的双向移位寄存器。在电子工程领域,...
【标题】"Bid Documents - Toyota Hilux Fx_pdf_" 暗示了这是一个与丰田Hilux FX车型相关的招标文件,格式为PDF。在IT领域,PDF(Portable Document Format)是一种广泛使用的文档格式,用于保存内容,确保在不同...
bid0-lid64-steam.game_steamzc_2.0.0.2242.exe
在提供的文件中,`quadratic_bid_ninebus.m`和`case9_bid.m`可能是两个主要的MATLAB源代码文件,它们可能包含了潮流计算的实现以及特定的优化算法,如牛顿-拉弗森法或者快速分解法。 `quadratic_bid_ninebus.m`可能...
bid格式招投标文件阅读器,可以打开浏览、管理电子招标文件,如果打不开标书文件,请按下面步骤检查:1、请查看招标文件(.bid文件)是否下载完全,请用IE下载工具下载;2、查看IE浏览器版本,如果版本低于IE8,低于IE...
- 在 "选择对象" 对话框中,选定需要的表,例如 "cctv_bid_result_qin_99" 和 "cctv_enterprise"。 7. **导入对象** - 在 "Generate Relationships" 对话框中,点击 "Import" 按钮将所选对象导入框架。 8. **...
演示脚本:Demo_BID_PnP.m%========================================== ========================% 接触: Marina Ljubenovic-葡萄牙里斯本电信研究所- Mario AT Figueiredo-葡萄牙里斯本电信学院-%============...
hidden_bids = {bid.bidder: bid.amount for bid in self.bids} highest_bid = max(hidden_bids.values()) winner = max(hidden_bids.keys(), key=lambda x: hidden_bids[x]) return (winner, highest_bid) ```...