`
leihehehe
  • 浏览: 3061 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

party_bid 重构

阅读更多

       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

可能是由于这是我接触编程以来第一次重构,还是有好多地方不能理解,还是希望以后多几次经验,把工作做得更好吧!

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics