Press "Enter" to skip to content

Month: October 2020

JS闭包和构造函数对比研究

闭包(或闭包函数)的概念在JS社区讨论的频率异常的高,有人甚至 把闭包原理看作像是外语里语法的那样重要。闭包的确是JS开发的基石(之一),然而它的基础作用为何,可能还需进一步廓清。

有一定OOP基础的人一定会发现,闭包函数和构造函数(必须使用new操作符的JS函数)的性质和意义,有点相似。本文尝试分析它们的共通和不同的地方,以期达到深刻认识闭包的意义。

源起

最近半个月一直在为重新出山面试作准备,在完成Promise(异步编程)的研习后,我又回到了JS 的基础复习中,其中的研习主题都是围绕着闭包、高阶函数、柯里化,和函数式编程。在这个过程,我开始酝酿着一种新看法,闭包,高阶函数,柯里化这些概念或技术都是以 「函数是一等公民」为前提的,它们都是在 「把函数作值处理的 」技术(请将它和 以数据作值处理相比较)。这种现象应该是 函数式编程范式的表现,目前我还没有对这种 「把函数作值处理的 」现象总结出完整的结论(初步使用「功能编程」概括之),研习还在进行中,不过我已经将它们进行归类,并且辨识出它各自的意义:

功能编程中功能制造的种类
功能编程中功能制造的种类

这里有一类首先引起了我特别的注意,就是创建新的一类。

JS语言是不是面向对象的?(二)

最新的编程技术研究成果:2020-10-25

  • 第一,OO和FP都是 程序构造术,两种都使用了抽象,但不同的思想范型;
  • 第二,构造过程分为,功能编程,和结果编程两步;
  • 第三,(两种)程序构造术 都为解决复杂性,通用协作,和复用达到这个意义目标;

阐述的步骤

1 为什么要面向对象
2 什么是面向对象
3 面向对象的标准特征是什么,
4 JS有没有,以及如何实现这个特征。

为什么要 面向对象

1 针对 事务应用程序 (数据量大,代码重复率高)的程序特点而设计的构造术
2 特点是思维粒度适中,易编写和阅读维护