gpt4 book ai didi

javascript - JavaScript 中将函数变成对象实现了什么?

转载 作者:行者123 更新时间:2023-11-30 08:58:13 24 4
gpt4 key购买 nike

JavaScript 的一个独特特性是“函数是对象,可以像任何对象一样传递” [1] .

当 Eich 先生开始创建这种语言时,他为什么决定这样做?与 Java 等语言中通常的 OOP 风格相比,它有何优势?他有先例吗?或者这在当时是一个完全独特的想法吗?

最佳答案

当然不是他发明的,first-class functions自 60 年代以来就存在。

它赋予您的能力是编写所谓的高级函数——将其他函数作为参数的函数。这是函数式编程的基石。例如,Array.map 是一个将另一个函数作为输入的函数,允许进行强大的构造。

面向对象编程是后来发展起来的,它更专注于耦合/分离数据和行为。这通常是以容易对代码进行推理为代价的(在口语和数学意义上)。许多 OO 语言(Java、C#)现在都在添加函数式编程的这些元素(即 lambda)。

考虑用 Java 等语言实现 Array.mapArray.reduceArray.filter 的复杂性。每次要使用它时,都必须创建一个特殊的匿名内部类的实例,只是为了实现算法调用所需的功能。在 JavaScript 中,函数就像其他所有对象一样只是对象,因此您可以只传入一个,从而使语法更加简洁和自然。

关于javascript - JavaScript 中将函数变成对象实现了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11550066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com