开发者社区> 问答> 正文

JavaScript OOP编程 的优点在什么地方,还有诸如闭包的存在会不会加大页面的加载的负担呢,使用户交互变得很慢呢?

之前看了一篇《 Create Advanced Web Applications With Object-Oriented Techniques》,里面很详细的介绍了js的oop用法,我现在想把这种方法应用到我的javaee项目中,但是担心会因为类似闭包这样的结构存在,反而给view部分增加不必要的负担(如加载慢,浏览器挂掉等等),所以想请教一下用过的朋友,麻烦给个参考意见,oop的实用性到底怎么样,他的优缺点都有哪些,谢谢啦。

展开
收起
a123456678 2016-07-15 16:05:07 2254 0
1 条回答
写回答
取消 提交回答
  • JS准确来说应该算是函数式语言,但是它确实能实现面向对象。

    基于为什么要使用面向对象的技术,是因为面向对象的封装、继承、多态等特性能提高编程效率,可复用性等,这一点在开发大中型项目里体现的尤为明显。当然程序运行的效率其实跟你使用的是面向过程还是面向对象无关,而是跟你写的具体代码或是应用的框架有关。

    OOP是一种很好的理念,它不仅仅应用在代码实现上,而是贯穿于整个软件过程。至于OOP的缺点,我还真的是不怎么了解(如果真有的话, 或许需要更多的思考吧),因为我只用它的优点。

    在JS中要不要使用OOP,这个应该是要看场合的。比如,如果你使用了一个OOP实现的框架(ExtJS等)那么使用OOP是理所当然的。但是如果只是一段简单的操作DOM的JS,那么我觉得就完全没有考虑什么OOP。记住一点,如果要用OOP,那肯定是用了OOP写出更健壮,更具可维护性,更高效的代码,而不是因为觉得OOP更高级,更显技术才用。

    另外JS的闭包跟你是否使用OOP无关,这不是OOP中的特性,而是JS的链式作用域的一个特性,也就是说,你使用一般的方式在一个函数内部写了一个函数,而且把这个内部函数作为结果返回给外部调用,那一样面临闭包问题。

    闭包不是JS的Bug,而是一项语言特性,因为有些时候我们能利用它改变局部变量的作用域。当然如果使用不当或是不注意的话,确实会导致一些问题,比如变量引用与预期不一致,资源占用高,网页性能问题,IE中还可能出现内存泄露等。

    2019-07-17 19:57:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载