Lambdas,匿名函数和回调似乎是一个很棒的工具。我已经将它们与jquery一起使用,随着时间的推移,我会看到越来越多的语言为它们添加支持。
所有这一切,我仍然不知道编程社区何时更喜欢使用它们。在阅读有关c ++的内容时,似乎已经将lambdas用于替换仿函数。在jquery中,一切都是用这种技术完成的。
我能理解:
$("#exampleId").click(goToFunction());
或
$("#exampleId").click(function(){ .... code here ... });
这是有道理的,因为它是事件驱动的。因为它循环遍历jquery,看看是否设置了某种标志,说明id为exampleId的对象触发了点击。
然而,在查看$ .post()时会更加混乱。为什么jquery会这样做:
$.post("someurl.com", function(data){ .... use data in code here ...});
而不是(假装$ .post返回下面的伪代码):
myFunction($.post("someurl.com"));
function myFunction(data) { .... use data in code here...}
几乎看起来是$ .post(...,function(){});语法遵循$(object).click(function(){});语法为了一致性。我可以尊重这一点。
似乎区别在于“功能性”和“命令式”范式。
我想说面向对象在将所有东西封装成小的自包含部分方面表现优异。
势在必行是程序性的,善于将事物解释为像工厂一样的过程。
“功能性”在哪里有优势?它只是表达同一事物的一种不同方式,完全取决于程序员的偏好,还是我在这里看不到使用它至关重要的好处?