- Javascript是功能语言吗?我知道它有对象,您也可以用它进行OOP,但是它也是一种功能语言,可以这样使用吗?
- 您知道OOP如何/似乎像编程的下一个演变一样,是否意味着“功能性编程”是下一个发展(注意:这不是提意见的提示,而是基于事实证据的答案的提示,并且本说明是主持人比贡献者更多;))。
- 我通过示例学习得最好,也许有人可以展示以OOP方式执行相同的任务,然后以功能编程的方式让我自己理解和比较功能编程的作用。
老实说,我并不完全理解“函数式编程”:P因此,将Javascript与函数式编程进行比较可能完全不正确。
用外行人的话来描述函数式编程:仅仅是使用匿名函数进行摘要的好处吗?
还是这样简单?通过简单的方法,OOP是通过对象进行抽象的好处,但是我认为描述OOP有点过于简单。
这是函数式编程的一个很好的例子吗?...
Javascript OOP示例:
// sum some numbers
function Number( v )
{
this.val = v;
}
Number.prototype.add( /*Number*/ n2 )
{
this.val += n2.val;
}
函数式编程示例:
function forEach(array, action)
{
for (var i = 0; i < array.length; i++)
action(array[i]);
}
function add(array)
{
var i=0;
forEach(array, function(n)
{
i += n;
});
return i;
}
var res = add([1,9]);
Or is that way too simple?
是的,是。匿名函数有时与功能语言和支持函数式编程的多范式语言相关联,但是它们并不是功能语言的独特特征。但是,如果您将它们视为λ演算的实现,那么它们就是函数式编程的核心部分,主要要点是,它并不是那么简单:)
I know it has objects & you can do OOP with it also
不,你不能。它是基于原型的编程,消除了类和对象之间的区别。我个人认为基于原型的编程在此基本级别上存在缺陷。