现实开发中,基本不会自己写个对象,封装属性和方法,基本上都是写逻辑代码(写写点击事件,ajax请求之类的是最多的了)。不知道面向对象的写法实际运用的场景是哪些?还请各位大佬指点迷津。
现实开发中,基本不会自己写个对象,封装属性和方法,基本上都是写逻辑代码(写写点击事件,ajax请求之类的是最多的了)。不知道面向对象的写法实际运用的场景是哪些?还请各位大佬指点迷津。
比如写个插件总要提供一些接口吧,比如简单的轮播可能要提供一个play方法才能让图片进行轮播,还有提供参数让用户配置,比如轮播的速度speed之类的。
在比如说百度前端学院的这道题建立几个人物模型,这时候就用到面向对象了
http://ife.baidu.com/course/d...
这个问题在前端学习很常见,其实没有必要觉得那么难,就是你把思路理溜,本来是过程驱动的,我们提前想到这些东西,把每个动作分解到位,就好像一个小球的移动,我们把小球移动可能涉及到到动作,属性分解,属性对应着可能要变化到位置等,动作对应到一个执行到过程,这样我们只需要告诉小球执行什么动作,或者什么时候执行什么动作,从而改变属性。
1.这还是看题主项目大小,如果题主是自己一人做的一个小项目,逻辑简单,直接写逻辑代码也是没问题的。
2.如果题主公司要做个中大型的项目,多人合作开发,而且后期需求一般是不断增加的,你的项目产品会不断的迭代开发,代码会越写越多,一个JS文件里写了几万行代码,耦合性太高,不知道题主会不会觉得头疼,出了BUG调试的时候是不是方便,找方法是不是快捷,增加一个新需求都要改文件里的好几处方法中的代码,新来的人屡逻辑都要好长时间。
这其中就涉及到代码的可维护性,开闭原则,快递调试定位BUG修复BUG等等问题,所以要用软件工程学的方法和面向对象的思想去开发项目,其中涉及MVC,MVVM等模式,还有发布订阅、命令模式等等多种设计模式实现项目的可维护性,可扩展性,出了需求可以写新代码,保证最小改动和新人接手知道项目遵循的基本思路,方便交接等等。
3.会了这么多框架和设计模式,还可以提高装B能力…………
写框架,库,或者自己写个小游戏。
很简单的,当你一个js文件中,函数名多了之后,你就会想把这些函数包起来,于是你想到了“面向对象”。
当然,如果习惯了 aaaba_sfdsf_csfs_wefwf()这种函数命名方式,那你也可以不用面向对象。
javascript就是面向对象编程的一种语言,对象(object)才是王道,过程(function)是Nothingness,HTML基本不会出现对象,JSON有时会接触对象,jQuery也是有时,CSS就比较多了,VBS就不用说了,怎么可能?
var a = {
html: none,
JSON: true,
jQuery: true,
CSS: alert("Hi!"),
};
相比之下,只有原生JS大规模使用对象,不过也建议大家学习面向对象编程,原因是它是一种优秀的编程方法。
13 回答12.7k 阅读
2 回答4.9k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
8 回答2.2k 阅读
5 回答667 阅读
3 回答2.1k 阅读
3 回答1.2k 阅读✓ 已解决
假设你的页面里有一个异步列表,他的主要功能包含1、异步请求数据,2、将相应数据渲染到页面上。这种情况直接把代码逻辑写页面里没什么问题。
之后,需求要在页面里再加个异步列表,你会发现两个列表代码差不多嘛,不同的地方就是请求地址或参数不一样,把第一个列表的代码复制过来改下也可以。
一旦用到这个列表的地方变多,列表代码的 copy 也变多。某天突然发现第一个列表里面有个 bug,那之后的 n 处 copy 就有 n 处 bug。改起来是会得黑眼圈的。
这时候,面向对象的优势就出来了,所有列表相同的行为:请求数据、渲染数据都用对象的方法实现,不同的地方:请求地址或参数就用对象件用于区分差异的属性来保存,这样就有了一个异步列表的类了:
每个使用的地方就 new 一下好了:
后面相关的维护也只要修改 AsyncList 这一处就好了。
总结下:
当你的代码规模达到一定程度,且发现有很多需要封装复用的代码,这样的场景下使用面向对象就可以一定程度上降低代码组织的复杂度。
面向对象还是要看场景,不要为了面向对象而面向对象