一个基于函数式编程的JavaScript应用程序是如何布局的?
- 论坛
- 一个基于函数式编程的JavaScript应用程序是如何布局的?
30 浏览
一个基于函数式编程的JavaScript应用程序是如何布局的?
我已经使用node.js一段时间了,用于一个聊天应用(我知道,非常原创,但我觉得这将是一个很好的学习项目)。Underscore.js提供了很多有趣的函数式编程概念,所以我想了解如何在JavaScript中设置一个函数式程序。
根据我对函数式编程的理解(可能是错误的),整个思想是避免副作用,也就是避免在函数之外更新另一个变量的函数,例如
var external; function foo() { external = 'bar'; } foo();
会产生副作用,对吗?因此,作为一条一般规则,您希望避免干扰全局范围内的变量。
好的,那么在处理对象等情况时如何工作呢?例如,很多时候,我会有一个构造函数和一个init方法来初始化对象,就像这样:
var Foo = function(initVars) { this.init(initVars); } Foo.prototype.init = function(initVars) { this.bar1 = initVars['bar1']; this.bar2 = initVars['bar2']; //.... } var myFoo = new Foo({'bar1': '1', 'bar2': '2'});
所以我的init方法有意引起副作用,但是处理相同情况的函数式方法是什么呢?
另外,如果有人能够指引我到一个尽可能函数式的Python或JavaScript源代码的程序,我将非常感激。我觉得我接近“懂了”,但还差一点。主要我对函数式编程如何与传统的OOP类概念一起工作(或者是否采用了不同的方式)感兴趣。