前端技术尤为是JavaScript,常常被后端以为不是正经编程语言,大多数是由于JavaScript是基于函数的语言,所以潜在上使得它在使用和发展上有所局限。html
我记得在90年代末和21世纪初,JavaScript主要用于使html页面更加动态。好比实现一些弹窗,跑马灯之类的视觉效果。前端
如今,咱们有不少框架,库,甚至后端系统都在使用JavaScript。用JavaScript开发一个移动应用和桌面应用程序-在之前是闻所未闻的,但现在,这些咱们常常据说甚至已经投入使用了。如今咱们还能够用JavaScript实现跨平台开发!java
JavaScript无处不在,你可使用JavaScript轻松完成不少有趣的东西。但随之而来的是潜在的长期问题。许多JavaScript开发者并无像java开发者同样习惯使用面向对象编程,或者说没有面向对象编程这方面的训练。这很正常,由于咱们常常为了追赶进度完成手头的工做,忽略了一些咱们还不知道的内容编程
面向对象的编程是一种思想,一种心态。它背后的想法是,你为你想象中的对象建立了一个蓝图,而后一次又一次地调用它来完成各类各样的功能。每次你想使用一个对象时,你必须先建立它这样它才会存在,而后设置它的属性,以便使用附加到它的功能。这些功能被称为“方法”。后端
例如,一个CustomerOrder对象可能附加了一个GET:Order Details功能(又名方法)。bash
//基于类
class CustomerOrder{
constructor(customerId,orderId){
this.customerId = customerId;
this.orderId = orderId
}
get orderDetails(){
return this.pullOrderDetails();
}
pullOrderDetails(){
//一些操做
return
}
}
const order_1 = new CustomerOrder(87873,"Cus-001")
console.log(order_1.orderDetails)
复制代码
咱们来看另外一个基于函数的方法:框架
//基于函数
const customerId = 8787
const orderId = "Cus-001"
function pullOrderDetails(customerId,orderId){
//一些操做
return
}
console.log(pullOrderDetails(87873,"Cus-001"))
复制代码
上面的问题在于,函数的数量多起来时,很快就会变得混乱。虽然将全部内容都编写为函数,而后根据须要来调用,在一开始可能会很方便,可是日积月累,函数之间的关联关系错综复杂,一旦发生变动,你可能须要修改不少函数,也会引发不少未知问题。编程语言
可能有些难理解,咱们看下面的图(使用类的状况):函数
constructor是设置变量的地方,Getter和setter方法是类作事的入口。使用什么函数以及如何使用它们都是隐藏的。每次建立一个新对象时,整个类及其方法都会被“克隆”,并可访问须要的内容。发生变动时,咱们也只须要在类上一次修改,即可以全局生效。学习
咱们再看下面的图(使用函数的状况)
当咱们用一堆松散的函数编写代码时,它的更改范围一般没有定义。依赖项注入是使函数正常工做所必需的,而一个函数经常须要另外一个函数才能正常工做。从表面上看,基于函数的编程可能一开始看起来很简单,但从长远来看,维护它是一个逻辑上的噩梦。
使用面向对象编程,您只须要调用getter和setter方法来访问黑盒功能。做为类的消费者,你不须要知道它是如何工做的。你只须要知道它是有效的。
上面的两幅图能看出来,过分依赖基于函数的编程可能很快就能完成任务,可是长远来看,这会存在很高的风险。
随着代码量的增加,你就须要改变组织代码的思惟方式,并考虑采用面向对象。与经过一系列依赖注入串在一块儿的函数相比,对象的则更容易追踪和掌握。
下面的代码是基于函数:
基于函数的编程的问题是,链的中断可能致使整个流程的失败。对于对象,一个被破坏的方法不会(也不该该)影响类的其余部分。
下面的代码是基于类(面向对象):
这种方法,可能代码量不会少多少,但你能够复用它,而不须要写很长的调用链。
当你思考问题时,是基于类,而不是一系列相互关联的函数时,代码天然会减小出现问题的风险。由于每一次依赖注入都会增长一次潜在错误的可能,并且寻找错误时,也会花费更多的时间和精力。、
面向对象编程是一种主动的行为,你能够选择使用,也能够选择不使用。随着前端体系的日益庞大,代码量和应用场景也远超于从前,咱们更须要思考面向对象编程的重要性。
面向对象编程的资料:
developer.mozilla.org/zh-CN/docs/…
———————————————————————————————————————————————————
放学别走!长按二维码关注 【技术人生路】,无偿免费获取前端学习进阶资料,培训实战视频,就业指导等众多福利哦。我相信咱们都是爱学习爱进步的呀!