一个基于函数式编程的JavaScript应用程序是如何布局的?

30 浏览
0 Comments

一个基于函数式编程的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类概念一起工作(或者是否采用了不同的方式)感兴趣。

0