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);