javascript - 一些思想之间的区别的问题
经常看到说
1.面向对象编程
2.模块化编程
3.函数式编程
这三个指的是一个思想吗?在实际工作中好像一直是出现问题解决问题,并未特别的关注
三个思想之间有什么明显的区别吗?
回复内容:
经常看到说
1.面向对象编程
2.模块化编程
3.函数式编程
这三个指的是一个思想吗?在实际工作中好像一直是出现问题解决问题,并未特别的关注
三个思想之间有什么明显的区别吗?
我的理解:
面向对象编程和函数式编程,一般使用不同语言就有不同的方式,至少是偏重。比如你用Java,一般都面向对象编程,比如你用JS,那一般都是函数式编程。
模块化编程更多的是偏组织方式,就不管是面向对象还是函数式编程,功能复杂了都需要模块化来组织功能,做到高内聚。
建议找一些不同编程范式的资料实际上手试一试,会有更深的理解。
不管是对象还是函数编程,基础都是过程化编程.
过程化编程体现在结构化程序设计:
特征:将程序中的数据与处理数据的函数分离
基本结构:顺序结构,选择结构,循环结构
设计方法:自顶向下,逐步细化,模块化,结构化编码
支持对象编程的语言体现在提供了类的封装.
支持函数式编程的语言体现在函数也是一个量,比如可以当做参数传递(闭包),也可以作为哈希表的一个值.
比如:
Java完全不允许将函数当作数据来传递.
而JS和PHP都可以将函数当作数据来传递.
函数表(哈希表+匿名函数):
函数名为键,匿名函数为值.
JS(用函数表组织函数,体现一等函数):
<code>var func = { foo: function(arg){alert(arg);}, bar: function(arg){alert(arg);} }; func.foo("php"); //func["foo"]("php"); func.bar("best"); //func["bar"]("best");</code>
PHP(面向数组编程:把函数和变量封装在数组内):
<code>$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'));</code>
如何更快的完成你的工作。工作中其实考虑点特别多。比如,就给你一分钟。让你写个alert弹框。你还要去判断一下,做个封装?不可能吧。比如你们公司都用面向对象的手法,你就不,你就不封装,就乱写。有必要吗?这些都只不过是你的习惯或者说一个工作规范,目的都是为了更快更好的完成工作。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.

En PHP, vous pouvez prévenir efficacement les attaques du CSRF en utilisant des jetons imprévisibles. Les méthodes spécifiques comprennent: 1. Générer et intégrer les jetons CSRF dans la forme; 2. Vérifiez la validité du jeton lors du traitement de la demande.

Dans PHP8, les expressions de correspondance sont une nouvelle structure de contrôle qui renvoie différents résultats en fonction de la valeur de l'expression. 1) Il est similaire à une instruction Switch, mais renvoie une valeur au lieu d'un bloc d'instruction d'exécution. 2) L'expression de correspondance est strictement comparée (===), ce qui améliore la sécurité. 3) Il évite les éventuelles omissions de rupture dans les instructions de commutation et améliore la simplicité et la lisibilité du code.
