JavaScript函数式编程

JavaScript的函数式编程的对象本质:

function a()

{

var x="sth";

return b(){

//do with x;

}

}

var c = a();

等价于

function a()

{

this.x = "dosth";

this.b = function(){

//do with this.x

}

}

var c = new a();

但是

1)函数式编程本能地避免无用对象的构造

因为函数式编程鼓励当用到闭包的时候才去调用闭包构造,而面向对象通常事先构造好对象,准备在那里 。

2)函数式编程保护私有变量

x不会被除闭包外的外部访问

3)闭包和对象一样要注意释放资源

如: c = null; setTimeout(CollectGarbage,100);