首页  >  问答  >  正文

javascript - 一些思想之间的区别的问题

经常看到说
1.面向对象编程
2.模块化编程
3.函数式编程
这三个指的是一个思想吗?在实际工作中好像一直是出现问题解决问题,并未特别的关注
三个思想之间有什么明显的区别吗?

迷茫迷茫2728 天前325

全部回复(3)我来回复

  • 迷茫

    迷茫2017-04-11 09:44:26

    我的理解:

    1. 面向对象编程和函数式编程,一般使用不同语言就有不同的方式,至少是偏重。比如你用Java,一般都面向对象编程,比如你用JS,那一般都是函数式编程。

    2. 模块化编程更多的是偏组织方式,就不管是面向对象还是函数式编程,功能复杂了都需要模块化来组织功能,做到高内聚。

    建议找一些不同编程范式的资料实际上手试一试,会有更深的理解。

    回复
    0
  • 高洛峰

    高洛峰2017-04-11 09:44:26

    不管是对象还是函数编程,基础都是过程化编程.
    过程化编程体现在结构化程序设计:
    特征:将程序中的数据与处理数据的函数分离
    基本结构:顺序结构,选择结构,循环结构
    设计方法:自顶向下,逐步细化,模块化,结构化编码

    支持对象编程的语言体现在提供了类的封装.
    支持函数式编程的语言体现在函数也是一个量,比如可以当做参数传递(闭包),也可以作为哈希表的一个值.
    比如:
    Java完全不允许将函数当作数据来传递.
    而JS和PHP都可以将函数当作数据来传递.
    函数表(哈希表+匿名函数):
    函数名为键,匿名函数为值.
    JS(用函数表组织函数,体现一等函数):

    var func = {
        foo: function(arg){alert(arg);},
        bar: function(arg){alert(arg);}
    };
    func.foo("php");  //func["foo"]("php");
    func.bar("best"); //func["bar"]("best");

    PHP(面向数组编程:把函数和变量封装在数组内):

    $func = array(
        'foo' => function($arg){echo $arg;},
        'bar' => function($arg){echo $arg;}
    );
    call_user_func_array($func['foo'], array('php'));
    call_user_func_array($func['bar'], array('best'));

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-11 09:44:26

    如何更快的完成你的工作。工作中其实考虑点特别多。比如,就给你一分钟。让你写个alert弹框。你还要去判断一下,做个封装?不可能吧。比如你们公司都用面向对象的手法,你就不,你就不封装,就乱写。有必要吗?这些都只不过是你的习惯或者说一个工作规范,目的都是为了更快更好的完成工作。

    回复
    0
  • 取消回复